jQuery:触发帮助

时间:2011-02-09 17:07:43

标签: javascript jquery cluetip

我正在使用cluetip jQuery插件。

我正在尝试添加自己的关闭按钮。我试图打电话的jquery是:

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

通过代码和jquery插入的按钮使用cluetipClose()有很多引用,并且工作方式使得我知道函数可以正常工作。

我正在尝试使用

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

我创建了我的链接:

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

但它没有做任何事情。

我是否错误地称呼它?

1 个答案:

答案 0 :(得分:1)

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

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

        if (thisCluetip)
            thisCluetip.cluetipClose();
    });
};

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

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

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

没有重新声明文档hideCluetip绑定?我认为这应该可行。