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