Ответ 1
$.live()
не поддерживает событие change
:
В настоящее время не поддерживается: размытие, фокус, mouseenter, mouseleave, изменение, отправка http://docs.jquery.com/Events/live
Попробуйте вместо livequery?
Нижеприведенный код работает как в FF, но не в IE...
$(document).ready(function() {
$('div.facet_dropdown select').live('change', function() {
var changed_facet = $(this).attr('id');
var facets = $('select', $(this).closest('form'));
var args = window.location.href.split('?')[0] + '?ajax=1';
var clear = false;
for(var i = 0; i < facets.length; i++) {
var ob = $(facets[i]);
var val = ob.val();
if(clear) {
val = '';
}
args += '&' + ob.attr('id') + '=' + val;
if(ob.attr('id') == changed_facet) {
clear = true;
}
}
$.getJSON(args, function(json) {
for(widget_id in json) {
var sel = '#field-' + widget_id + ' div.widget';
$(sel).html(json[widget_id]);
}
});
});
});
$.live()
не поддерживает событие change
:
В настоящее время не поддерживается: размытие, фокус, mouseenter, mouseleave, изменение, отправка http://docs.jquery.com/Events/live
Попробуйте вместо livequery?
Примечание. jQuery 1.4 теперь поддерживает функцию live для всех обычных событий. Он не работал с IE8 до недавнего времени, но я считаю, что это исправлено с помощью jQuery 1.4.2. См. Этот разрешенный билет jQuery: IE8 НЕ ПОДДЕРЖИВАЕТ ИЗМЕНЕНИЕ СОБЫТИЯ ПРИ ИСПОЛЬЗОВАНИИ LIVE
Я использовал -
jQuery('#id').find('select').live("click", function(){
jQuery(this).change(function(){
//your code
});
});
Используйте delegate()
функцию вместо live()
. Это то же самое, что и в режиме live, но поддерживает больше событий и отлично работает в IE. В вашем случае это будет
$('div.facet_dropdown select').delegate('change', function() { ... });
и функция корректора undelegate()
Также обратите внимание, что с jQuery 1.7 вы должны использовать "on" вместо делегирования или жить.
$(selector).live(events, data, handler); // jQuery 1.3+
$(document).delegate(selector, events, data, handler); // jQuery 1.4.3+
$(document).on(events, selector, data, handler); // jQuery 1.7+
Live страдает от множества проблем, чем просто старая проблема без изменений: http://api.jquery.com/live/#typefn