Chr*_*ris 0 javascript ajax jquery javascript-events
刚试过以下方法发现这不起作用?
(使用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;");
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
这个功能很好.<a>正确更改元素的属性.然而,新事件(该功能bookmark_remove没有被解雇.所以我认为我的方法不起作用,因为一些基本的误解,可能?
谁能告诉我这个假设是正确的,并给出任何暗示为什么?
我不能立即告诉你为什么它不起作用(可能是几件事;一件事情onClick应该是小写的 - 混合大小写的版本只适用于HTML 标记 [不是XHTML,而是HTML],而不是你的'重新与DOM交互,这是区分大小写的),但没有理由这样做.代替:
$('.a_bookmark').click(function() {
bookmark_remove(bookmark_id);
return false;
});
Run Code Online (Sandbox Code Playgroud)
如果锚预先配备了现有的onclick处理程序,您可以像这样清除它:
$('.a_bookmark').attr("onclick", "");
Run Code Online (Sandbox Code Playgroud)
所以把它放在一起:
$('.a_bookmark').attr("onclick", "").click(function() {
bookmark_remove(bookmark_id);
return false;
});
Run Code Online (Sandbox Code Playgroud)
显然人们不明白我在做什么,所以这是你的完整ajax电话,上面推荐的改变:
$.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", "").click(function() {
bookmark_remove(bookmark_id);
return false;
});
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2990 次 |
| 最近记录: |