我正在开发一个项目,我有一个由JQuery创建的文字云。当您将鼠标悬停在云上并且每个单词都是指向URL的链接时,云中的每个单词都会突出显示红色。我想拥有的是每个链接都出现在弹出窗口中。以下是我希望弹出的示例:http://www.cybernetiksolutions.com/popup/popup.jpg。我找到了一些允许你使用JQuery弹出窗口的脚本,但是当通过JQuery创建链接时也没有。有人能指出我正确的方向吗?
这是我已经在这个项目上完成的工作的链接。 http://www.cybernetiksolutions.com/popup/index.html
答案 0 :(得分:1)
我找到了一些允许你使用JQuery弹出窗口的脚本,但是当通过JQuery创建链接时也没有。
这些可能是您见过的简单$(selector).click(function() { ... });
处理程序。那些不能使用新创建的元素的原因是它们只扫描DOM以查找在运行该函数时与选择器匹配的元素,很可能是在文档准备好的情况下。 ($(document).ready(function(){ /* right here */});
)
您可以使用两种方法将事件处理程序附加到您正在创建的链接。
选项1(创建后附加):
添加所有元素后:
$('#wordcloud').find('a').click(function(event) {
event.preventDefault(); //to prevent the default click action
//do your popup magic right here
});
选项2:委派
随时随地准备好文件:
使用.delegate:
$('#wordcloud').delegate('a', 'click', function(event) {
event.preventDefault(); //to prevent the default click action
//do your popup magic right here
});
使用.on:
$('#wordcloud').on('click', 'a', function(event) {
event.preventDefault(); //to prevent the default click action
//do your popup magic right here
});