jquery - как вызвать функцию с параметрами внутри плагина фабрики виджетов? - PullRequest
11 голосов
/ 04 января 2012

Я хочу вызвать функцию внутри моего плагина jquery (на основе фабрики виджетов).

Выглядит так:

(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 ]

22 голосов
/ 04 января 2012

Хорошо, после бесконечного вмешательства параметры или аргументы передаются следующим образом:

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

Вам нужно просто добавить параметры после функции, разделенной запятой.Надеюсь, это поможет кому-то еще.

1 голос
/ 04 января 2012

Я действительно не знаю, как этот плагин расширяет и предоставляет свои функции, но я думаю, вы могли бы попробовать одно из следующих действий:

$.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.

В качестве альтернативы вы можете просто определить функцию в более глобальной области видимости и затем использоватьэто как часть объекта конфигурации и когда вы хотите применить его к определенным элементам.

1 голос
/ 04 января 2012

Я не очень знаком с jquery, но попробуйте это:

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

Это анонимная функция, которая будет выполняться при необходимости с вашими статическими и динамическими параметрами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...