jQuery在1.7版本之后,live方法被废弃,改为使用on方法来绑定事件。这是因为live方法在绑定事件时,是将事件委托给document来处理,因此性能不佳。但是,如果你还在使用旧版本的jQuery,可能会遇到live方法失效的情况。
如果你在使用jQuery 1.6及以下版本,且使用live方法绑定事件时,还出现了无法绑定事件的情况,可能是因为你动态生成的元素没有在document中,从而无法委托给document处理。这时可以尝试先将元素插入到document中,再绑定事件。
var $newElem = $('<div>动态生成的元素</div>'); $(document.body).append($newElem); $newElem.live('click', function() { alert('click!'); });
另外,如果你使用的是jQuery 1.4及以下版本,live方法可能会失效,这是因为这些版本的jQuery是使用事件冒泡来处理事件的,而live方法需要使用事件捕获。你可以尝试使用delegate方法来代替live方法,或升级jQuery版本。
$(document).delegate('.dynamic-elem', 'click', function() { alert('click!'); });
总之,如果你遇到了live方法失效的情况,可以考虑将动态生成的元素插入到document中,或使用delegate方法,或升级jQuery版本。