刚刚尝试了以下方法,发现这不起作用?javascript:使用ajax更改onClick属性不会触发新事件?
(使用jQuery):
function bookmark_add() {
$.ajax({
type: "POST",
url: "load.php",
data: data,
success: function(msg) {
var msg_array=msg.split("-");
var success=msg_array[0];
var bookmark_id=msg_array[1];
if(success==1) {
$('.btn_bookmark').html('Remove Bookmark');
$('.a_bookmark').attr("onClick","bookmark_remove("+bookmark_id+"), return false;");
}
}
});
}
此功能工作正常。 <a>
元素的属性被正确更改。然而,新的事件(功能bookmark_remove
没有被解雇,所以我认为我的方法不起作用,因为一些基本的误解,可能?
有谁能告诉我,这个假设是正确的,给任何暗示为什么?
如果OP当前有一个'onclick'属性绑定来添加一个书签,你的监听器和他的属性都会触发我猜。 –
这是错误的,因为bookmark_id值不存在于.click内容中 –
@WampieDriessen:是的。我正在谈论替换他在ajax处理程序中的代码。点击处理程序将是'bookmark_id'上的一个闭包。 –