【问题标题】:jQuery: Trigger helpjQuery:触发帮助
【发布时间】:2011-02-10 01:43:40
【问题描述】:

我正在使用线索提示 jQuery 插件。

我正在尝试添加自己的关闭按钮。我要调用的 jquery 是:

 $(document).bind('hideCluetip', function(e) {
  cluetipClose();
});

通过代码和 jquery 插入的按钮有很多对线索提示关闭()的引用,并且使用它并且可以正常工作,因此据我所知,该功能可以正常工作。

我正在尝试使用来触发它

$('a.close-cluetip').trigger('hideCluetip');

我已经创建了我的链接:

<a href="#" class="close-cluetip">Close</a>

但它什么也没做。

我是不是叫错了?

【问题讨论】:

    标签: javascript jquery cluetip


    【解决方案1】:

    这里的问题是,在线索提示插件中,函数clueTipClose() 在闭包内,所以除非你在闭包内(即在插件代码内),否则你无法访问它。现在我不得不承认,这个插件似乎并没有被设置成可扩展的。如果他们通过为每个使用它的元素设置的“clueTip”对象使这个函数可以访问,你就可以像这样在闭包的末尾添加另一个 jQuery 方法:

    $.fn.cluetipClose = function() {
        return this.each(function() {
            var thisCluetip = findCluetipObj(this);
    
            if (thisCluetip)
                thisCluetip.cluetipClose();
        });
    };
    

    但不幸的是,你不能轻易做到这一点。看起来这个人用闭包内的非 OO 代码编写了他的 jQuery 插件。可怜的你。

    现在从好的方面来说,这个插件在实例化cluetipClose() 函数后似乎已经直接运行了这段代码。您是否尝试过从您的代码中执行此操作:

    $('a.close-cluetip').trigger('hideCluetip');
    

    不重新声明文件hideCluetip绑定?我认为这应该可行。

    【讨论】:

    • 绑定不是我写的。它位于插件 js 中。我只是想在点击链接时调用它
    • @iamjonesy:当然你没有:-)。你有没有像我说的那样尝试触发事件?正如我所说,当插件被实例化时,事件已经附加在文档级别,所以触发它应该关闭它。如果这不起作用,请尝试$(document).trigger('hideCluetip')
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多