我没有什么问题,脚本只运行一次,之后我需要刷新页面来删除喜欢的文章(脚本就是这样)。
$("a.fav_no").on('click', function () {
var id = $(this).attr("id");
$(this).load("{$homepage}/user_action.php?action=fav&id="+ id +"").addClass("fav_yes");
});
$("a.fav_yes").on('click', function () {
var id = $(this).attr("id");
$(this).load("{$homepage}/user_action.php?action=remove_fav&id="+ id +"").removeClass("fav_yes");
});
在控制台中,我在点击多次后点击了文章(div)的id(所以它数了),但它没有做任何事情。所以我现在可以只是喜欢,从我喜欢的我需要刷新的删除然后再次点击链接从收藏夹删除。
谢谢!
答案 0 :(得分:0)
如果要替换负责捕获事件的html, 你应该再次启动那些事件捕获器。
像这样:initEvents() {
$("a.fav_no").on('click', function () {
var id = $(this).attr("id");
$(this).load("{$homepage}/user_action.php?action=fav&id="+ id +"").addClass("fav_yes");
});
$("a.fav_yes").on('click', function () {
var id = $(this).attr("id");
$(this).load("{$homepage}/user_action.php?action=remove_fav&id="+ id +"").removeClass("fav_yes");
});
}
然后你在页面加载时调用initEvents, 并且当html被替换时再次。
答案 1 :(得分:0)
如果使用带有3个args的.on()重载并在文档上调用。然后,当UI元素来去时,事件将保持连接状态。无需每次都重新添加它们。
$(document).on(“click”,“a.offsite”,function(){.....
请在此处查看.on()的说明。 http://api.jquery.com/live/