2012-01-09 78 views
-1

我正在研究一个项目,其中有一个由JQuery创建的词云。当您将鼠标悬停在云上时,每个单词都会突出显示红色,并且每个单词都是指向URL的链接。我想要的是每个链接都弹出来。这里是我想弹出的样子的一个例子:http://www.cybernetiksolutions.com/popup/popup.jpg。我发现了一些脚本,可以让你使用JQuery做弹出窗口,但是当通过JQuery创建链接时也不会。有人能指出我在这个正确的方向。用JQuery创建链接弹出

这里是我已经在这个项目上完成的工作的链接。 http://www.cybernetiksolutions.com/popup/index.html

回答

1

我发现了一些脚本,允许您使用JQuery执行弹出窗口,但在通过JQuery创建链接时也没有。

这些可能是你见过的简单的$(selector).click(function() { ... });处理程序。那些对新创建的元素不起作用的原因是,它们只在扫描DOM时查找与该选择器匹配的元素,这很可能是在文档准备好的情况下运行的。 ($(document).ready(function(){ /* right here */});

您有两个选项可用于将事件处理程序附加到正在创建的链接。

  1. 连接时连接是通过使用jQuery的delegate(1.4.3 +)或on(V1.7 +)创建
  2. 使用事件委托的事件处理函数

选项1(创建后附接):

$('#wordcloud').find('a').click(function(event) { 
    event.preventDefault(); //to prevent the default click action 
    //do your popup magic right here 
}); 
0123:

加入所有元素之后

选项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 
});