jquery - 如何在widget-factory插件中调用带参数的函数?

时间:2012-01-04 12:01:23

标签: jquery jquery-plugins parameters

我想在我的jquery-plugin(基于widget-factory)中调用一个函数。

看起来像这样:

(function( $, window) {
    $.widget("mobile.multiview",$.mobile.widget, {
        stackUp: function (source, event, data) {
             ...
        }
    }
}) (jQuery,this);

我想从插件外部调用 stackUp 。问题:我不知道如何正确传递参数。这不起作用:

$('#trigger').multiview("stackUp('pagination', fakeEvent, fakeData)");

有人能指出我在插件中调用公共函数并传递参数的正确语法吗?

更新

我可以这样调用函数:

$('#trigger').multiview('stackUp');

但我怎样才能传递参数?

3 个答案:

答案 0 :(得分:22)

好的,在无休止的干预之后,参数或参数会像这样传递:

$("#trigger").multiview('stackUp','pagination', fakeEvent, fakeData );

您只需在以逗号分隔的函数后添加参数。希望这也有助于其他人。

答案 1 :(得分:1)

我对jquery不是很熟悉,但试试这个:

$("#trigger").multiview(function() { stackUp('pagination', fakeEvent, fakeData); });

这是一个匿名函数,将根据您的静态和动态参数执行。

答案 2 :(得分:1)

我真的不知道该插件是如何扩展并公开其功能的,但我猜您可以尝试以下方法之一:

$.mobile.widget.stackUp.apply($('#trigger'), ['pagination', fakeEvent, fakeData]);
$.mobile.multiview.apply($('#trigger'), ['pagination', fakeEvent, fakeData]);

然而,它们完全有可能不暴露该方法。你有代码吗?

<强>更新

在真正找到这个插件之后我会阅读文档,你应该能够做到:

$('#trigger').stackUp(...)

在此处查看来源:http://jqueryui.com/demos/widget/default.html - 并查看已定义的random函数。

或者,您可以在更全局的范围内定义函数,然后将其用作配置对象的一部分,以及何时将其应用于特定元素。