弹出JQuery创建的链接

时间:2012-01-09 19:16:42

标签: javascript jquery

我正在开发一个项目,我有一个由JQuery创建的文字云。当您将鼠标悬停在云上并且每个单词都是指向URL的链接时,云中的每个单词都会突出显示红色。我想拥有的是每个链接都出现在弹出窗口中。以下是我希望弹出的示例:http://www.cybernetiksolutions.com/popup/popup.jpg。我找到了一些允许你使用JQuery弹出窗口的脚本,但是当通过JQuery创建链接时也没有。有人能指出我正确的方向吗?

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

1 个答案:

答案 0 :(得分:1)

  

我找到了一些允许你使用JQuery弹出窗口的脚本,但是当通过JQuery创建链接时也没有。

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

您可以使用两种方法将事件处理程序附加到您正在创建的链接。

  1. 创建链接时附加事件处理程序
  2. 使用jQuery' s delegate(v1.4.3 +)或on(v1.7 +)函数
  3. 使用事件委派

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