我有点击事件打开窗口弹出的功能。这些功能在外部js文件上。
$(document).ready(function() {
$('a.cart-window').click(open);
function open (){
// function perform
var loginBox = $(this).attr('href');
return false;
}
});
一切都有罚款。但是当我重新启动这个功能时($('a.cart-window')。点击(打开);)响应ajax成功调用,在新生成的html上实现这个功能,它不会工作。 firebug显示错误(NS_ERROR_XPC_BAD_OP_ON_WN_PROTO:WrappedNative原型对象上的非法操作)。
我想要做的是,我有很多冗长的JS函数,给它们一个像开放的名字,因为我在上面的代码中显示并从任何地方调用它,所以我不需要在ajax中编写完整的代码成功的回应。重要注意我在我的函数中使用$(this),并且还希望将事件传递给函数。
ajax代码
function callAjax(){
$.ajax({
url: ,
type: "POST",
data:
}).done(function (msg) {
。$( 'a.cart窗口')上单击(开放);
});
}
答案 0 :(得分:0)
试试这个,
(document).ready(function() {
$('a.cart-window').on('click',function(e){open(e)});
function open (e){
e.preventDefault();
// function perform
var loginBox = $(e.currentTarget).attr('href');// you can use e.currentTarget here
return false;
}
});
答案 1 :(得分:0)
如果您正在处理动态元素,请使用.on()
使用事件委派(使用事件传播)$(document).ready(function() {
$(document).on('click', 'a.cart-window', open);
function open (){
// function perform
var loginBox = $(this).attr('href');
return false;
}
});
在这种情况下,无需为新更新的dom重新启动事件处理程序。