jquery代码只有在返回到控制台后才起作用

标签 jquery

html

<span><a class="like-Unlike" href="">Like</a></span>

my.js

$(".like-Unlike").on('click',function (e) {

        if ($(this).html() == "Like") {
            $(this).html('Unlike');
        }
        else {
            $(this).html('Like');
        }
        return false;
    }
);

问题是: Like 按钮不能用作没有错误消息的切换按钮,但是当我将上述所有 javascript 返回到控制台后,它就可以工作了。

最佳答案

当您确认元素是动态附加的时,这些附加元素没有附加点击处理程序。要实现此目的,您需要使用事件委托(delegate)。您无需将事件处理程序附加到按钮,而是将其绑定(bind)到父元素,或者说body,然后修改on,例如

$('body').on('click', '.like-Unlike', function(e) {
  e.preventDefault(); //don't use return false; has nothing to do with the issue though

  var elm = $(this); //cache the element
  (elm.text() == 'Like') ? elm.text('Unlike') : elm.text('Like'); //keeping it short
});

有关 event delegation 的更多信息

关于jquery代码只有在返回到控制台后才起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43822023/

相关文章:

javascript - 按回车键刷新待办事项列表

javascript - 在 jQuery 中加载图像

javascript - 将 id 值传递给 ajax 页面

jquery - 自定义 View 中某些月份的问题 - FullCalendar.io

jquery - 防止加载后起泡?

javascript - 如何通过ajax函数发送数据到php文件?

jquery - CSS 动画关键帧不以内容为中心

javascript - 在 javascript/jquery 中获取 URL 数组变量

javascript - 找不到固定标题表的选择器

javascript - 如何将 JQuery InputMask 与 HTML 模式一起使用