下面的代码在FF中按预期工作,但在IEs中不能...
$(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]);
}
});
});
});
发布于 2010-04-07 12:30:29
注意: jQuery 1.4现在支持所有正常事件的实时函数。它直到最近才能在IE8上工作,但我相信这个问题已经在jQuery 1.4.2中得到了修复。查看这张已解析的jQuery票证:IE8 DOES NOT SUPPORT THE CHANGE EVENT WHILE USING LIVE
发布于 2010-10-08 02:17:04
我用了-
jQuery('#id').find('select').live("click", function(){
jQuery(this).change(function(){
//your code
});
});
发布于 2010-10-20 00:25:16
使用live()
函数代替delegate()
函数。它与live相同,但支持更多事件,在IE中运行良好。在你的情况下,它将是
$('div.facet_dropdown select').delegate('change', function() { ... });
和对应的undelegate()函数
https://stackoverflow.com/questions/1451760
复制相似问题