2011-01-10 4 views
0

Почему этот код не работает в Internet Explorer 9?Internet Explorer 9 и jQuery

function calc() { 
    alert('aaa'); 
} 
$('body').delegate('input', 'change', function(){ 
    // In here, $(this) is the input that has changed 
    calc(); 
}); 
$('body').delegate('select', 'change', function(){ 
    calc(); 
}); 
+4

Можете ли вы уточнить? Сообщения об ошибках? – polarblau

+0

Что вы ожидаете, и что вы испытываете? – Sampson

+0

ничего не работает в ff и chrome, нет ie9 – kusanagi

ответ

2

Насколько я знаю, событие изменения не пузыриться в IE. $.delegate работает только для событий, которые пузырятся. Вы говорите, что это работает для более ранних версий IE?

+0

Я тестировал в ff \ chrome, теперь босс говорит, что, т. Е. Не работает, поэтому я ищу решение – kusanagi

+3

Босс не должен должен сказать вам, что это сломанный в IE :) –

+1

http://api.jquery.com/change/ Это говорит о том, что изменения должны пузыриться (даже в IE) для jQuery 1.4 и новее, проверьте свою версию jQuery –

0

Вы гарантируя, что вызовы JQuery в случае DOMReady:

$(function() { 
    $("body").delegate("input, select", "change", function() { 
     calc(); 
    } 
});