Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于在单击事件时突出显示单词块的jQuery插件_Javascript_Jquery_Html_Highlighting - Fatal编程技术网

Javascript 用于在单击事件时突出显示单词块的jQuery插件

Javascript 用于在单击事件时突出显示单词块的jQuery插件,javascript,jquery,html,highlighting,Javascript,Jquery,Html,Highlighting,我正在使用这个网站上的jquery highlighter。您可以选择文本,highlighter将在 我在文本突出显示部分注册单击事件时遇到问题。我已经读到,在动态添加的元素上,您必须使用.on()函数,但我无法使它工作 下面是我在javascript底部的代码。我认为highlighter中有某种东西阻止了点击事件,但我的javascript技能还不足以弄清楚是什么 这就是我试图注册点击事件的方式 $(document).ready(function() { $('#sandbox'

我正在使用这个网站上的jquery highlighter。您可以选择文本,highlighter将在

我在文本突出显示部分注册单击事件时遇到问题。我已经读到,在动态添加的元素上,您必须使用
.on()
函数,但我无法使它工作

下面是我在javascript底部的代码。我认为highlighter中有某种东西阻止了点击事件,但我的javascript技能还不足以弄清楚是什么

这就是我试图注册点击事件的方式

$(document).ready(function() {
    $('#sandbox').textHighlighter();

    $('#sandbox').on('click', 'span.highlighted', function(){
        alert("Click was registered");
    });
});
有两件事-您使用的jQuery早期版本(1.6.4)不支持
on()
(您可以使用
delegate()
),您的语法需要稍微调整-

$(document).on('click', 'span.highlighted', function(){
    console.log("Click was registered");
});
应该对jQuery最初运行时页面上存在的元素进行委托。在这种情况下,事件将冒泡到“document”,它在代码运行时安全存在。选择器也可以是“沙箱”

另一个注意事项是,始终使用
console.log()
进行故障排除,而不是


对动态创建的元素使用
.live

演示


请在此处发布您的相关代码,以便为so的未来访问者保留。使用
.live()
而不是
.on()
,是否有任何好处?
live()
适用于1.7之前的jQuery版本。它在1.9版中被完全删除
$('#sandbox').live('click', 'span.highlighted', function () {
        alert("Click was registered");
});