javascript - 将点击设置为未创建的元素

标签 javascript jquery userscripts

这是我的第一个问题,我希望我问的是正确的。 我正在制作一个用户脚本。该网站有一个聊天功能,当用户单击一条消息时,它应该复制该消息。该网站已删除右键单击和选择。我知道如何复制消息,但不知道如何添加点击功能部分。

这是我到目前为止的代码:

$(document).ready(function(){
      $('.msg').click(function(){
      $('#someinput').val($(this).text())
      .select();
      document.execCommand('copy');    
      });
});

这给了我错误 Cannot read property 'click' of null,我猜这是因为聊天消息尚未创建。我该如何解决这个问题?

最佳答案

您必须使用 jQuery 事件委托(delegate):http://learn.jquery.com/events/event-delegation

如果您的 .msg 元素位于容器内,您可以编写

$(document).ready(function() {
    $('#container').on('click', '.msg', function() {
        // your click function
    });
});

关于javascript - 将点击设置为未创建的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39930486/

相关文章:

javascript - 如何计算圆并将其放置在矩形区域上?

javascript - 如何将背景动画制作成循环(重复功能)

javascript - 如何在chrome中安装用户脚本(添加的脚本无法运行)?

javascript - CSS三 Angular 形用Javascript改变显示值

javascript - 检查 HTML 元素是否为 HTML 媒体元素

javascript - 将WebDriver的Browser实例传递给Appium中的JavaScript

jquery - 在 fancybox 中加载图像 150% 的大小

javascript - 用 jquery 替换损坏的图像

javascript - 如何将 ViolentMokey userScript 制作成浏览器扩展?

javascript - 从用户脚本将独立于样式的 jQuery UI 对话框添加到 DOM