【问题标题】:Apply one instance of a jQuery plugin to multiple elements?将 jQuery 插件的一个实例应用于多个元素?
【发布时间】:2011-07-22 14:32:04
【问题描述】:

我正在编写一个继承自 ui.dialog 的弹出窗口小部件,我想知道是否有办法在许多元素上重用相同的弹出窗口实例。例如,假设我有这个 html:

<a class = "pops" href="">test</a>
<a class = "pops" href="">test2</a>
<a class = "pops" href="">test3</a>

如果我调用 $(.pops).popup(options),popup 的 _create 方法将被调用 3 次,我将在页面上有 3 个实例。我想创建一个弹出窗口,其位置、大小和内容会根据触发它显示的链接进行修改。

当创建弹出窗口的新实例时,会在页面上附加一个(最初隐藏的)弹出 div,并带有一个子 div 来保存该弹出窗口的内容。所以你可以想象,存储指向创建的所有不同弹出窗口的指针会占用大量空间。

我的直觉是,只有一个可重复使用的弹出窗口比拥有 3 个单独的弹出窗口更有效,尤其是因为我一次只希望打开一个。我的直觉不正确吗?

【问题讨论】:

    标签: jquery jquery-ui jquery-widgets


    【解决方案1】:

    重复使用相同元素的短版本,即 div#popUpDiv:

    $('.pops').live('click', function(){
        $("#popUpDiv").html($(this).html());
    });
    

    【讨论】:

    • 好的,谢谢!我还考虑过检查元素是否已经在 _create() 中创建。同样的想法......我认为没有办法避免多次调用_create。
    猜你喜欢
    • 2010-10-16
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多