我遇到了无法解决的问题。
这段代码非常适合我。
// click row opens message, unless you click delete
$('.delete_message-link-js').live('click', function(e) {
e.preventDefault();
});
$('.item-message').live('click', function(e){ //.item-message - tr lass
window.location = $(this).find(".show_message-link").attr("href");
});
但是,当我将 .live()更改为 .on()
// click row opens message, unless you click delete
$('.delete_message-link-js').on('click', false );
$('.item-message').on('click', function(e){
window.location = $(this).find(".show_message-link").attr("href");
});
我在Firefox中有一个错误。当我点击表格行中的.delete_message-link-js链接时出现错误
提示被用户中止 用户“,Cr.NS_ERROR_NOT_AVAILABLE)抛出Components.Exception ...
但是代码可以在Safari中使用。
我做错了什么?
谢谢,对不起我的英文
答案 0 :(得分:9)
阅读文档:
从那里我们可以看到on
相当于:
$('.delete_message-link-js').live('click', function(e) {
e.preventDefault();
});
是:
$( document ).on( "click", ".delete_message-link-js", function(e){
e.preventDefault();
});
等等。
您还可以阅读源代码,了解live
如何转换为on
:
live: function( types, data, fn ) {
jQuery( this.context ).on( types, this.selector, data, fn );
return this;
}
this.context
为document
(默认情境,因为您未提供任何上下文),this.selector
为'.delete_message-link-js'
,用于上述示例。
答案 1 :(得分:0)
您需要将.on()
附加到项目的父级:
// Pseudocode...
$('#parent of .delete_message-link-js').on('click', '.delete_message-link-js', false );