似乎我遇到了一点问题,我很困惑为什么..
代码:
$(".post-click").click(function()
{
var classid = $(this).attr('id');
var postid = $(this).attr('id');
postid = postid.replace('post-click-id_', '');
alert("ID: " + classid + " PostID: " + postid);
$(this).replaceWith('<img SRC="assets/img/refresh.gif" ALT="" id="' + classid + '">');
$.post("likepost.php", { postid: postid } , function(data)
{
$(document).foundationTooltips();
alert(data);
$("#" + classid).replaceWith(data);
var classes = $("#" + classid).attr('class');
alert(classes);
});
});现在,当你点击它的时候,它会替换掉你点击的ID的文本。现在,在上面我得到了这个:
$(".post-click").click(function()
{在替换之后,post-click似乎不再被调用。为了确保我用好的类替换了它,我把'var classes = ...‘在外面。它警告单击后的类在替换中。
替换为:test< /a >";
知道为什么jQuery不再调用post-click了吗?
发布于 2012-10-23 18:01:36
在使用replaceWith时,您将替换DOM元素,并完成其事件绑定。
幸运的是,jQuery提供了.on,它允许您使用事件委托(而不是遍历重新绑定事件的新内容)。
将其应用于post-click的父节点,然后在参数中指定类。
例如:
$(".some-parent-elem").on("click", ".post-click",
function (){...do stuff on click...});它的工作原理是侦听.ome-parent-elem上的点击(由于事件冒泡,这意味着当您单击该元素的子元素时,它将触发),然后如果被单击的原始目标元素具有post-click类,它将运行函数。
https://stackoverflow.com/questions/13027869
复制相似问题