gpt4 book ai didi

javascript 替换 + classid

转载 作者:行者123 更新时间:2023-12-02 19:16:48 25 4
gpt4 key购买 nike

似乎我遇到了一些问题,我很困惑为什么......

代码:

$(".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()
{

替换后似乎不再调用点击后操作。为了确保我用好的类替换了它,我把 'var classes = ...' 放在那里。它警告点击后类正在替换中。

替换为: 测试";

有什么想法为什么 jQuery 不再调用点击后操作吗?

最佳答案

使用 replaceWith 时,您将替换 DOM 元素及其事件绑定(bind)。

幸运的是,jQuery 提供了 .on,它允许您使用事件委托(delegate)(而不是循环通过新内容重新绑定(bind)事件)。

将其应用于点击后的父节点,然后在参数中指定类。

例如

$(".some-parent-elem").on("click", ".post-click", 
function (){...do stuff on click...});

它的工作原理是,它监听 .some-parent-elem 上的点击(由于事件冒泡,这意味着当您点击该元素的子元素时它会触发),然后如果被点击的原始目标元素有点击后的类,它运行该函数。

关于javascript 替换 + classid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13027869/

25 4 0