Reputation: 28533
I want to call a function inside my jquery-plugin (widget-factory based).
Looks like this:
(function( $, window) {
$.widget("mobile.multiview",$.mobile.widget, {
stackUp: function (source, event, data) {
...
}
}
}) (jQuery,this);
I want to call stackUp from outside of the plugin. The problem: I don't know how to pass the parameters correctly. This does not work:
$('#trigger').multiview("stackUp('pagination', fakeEvent, fakeData)");
Can somebody point me to the correcty syntax of calling a public function inside a plugin and passing along parameters?
UPDATE:
I can call the function like this:
$('#trigger').multiview('stackUp');
but how can I pass the parameters?
Upvotes: 11
Views: 10534
Reputation: 47995
I'm not very familiar with jquery
but try this:
$("#trigger").multiview(function() { stackUp('pagination', fakeEvent, fakeData); });
This is an anonymous function which will be executed on need with your static and dynamic parameters.
Upvotes: 1
Reputation: 28533
Ok, after endless meddling, the parameters or arguments are passed like this:
$("#trigger").multiview('stackUp','pagination', fakeEvent, fakeData );
You just have to add parameters after the function separated by comma. Hope this helps someone else, too.
Upvotes: 22
Reputation: 3125
I dont really know how that plugin extends and exposes its functions but I would guess you could try one of the following:
$.mobile.widget.stackUp.apply($('#trigger'), ['pagination', fakeEvent, fakeData]);
$.mobile.multiview.apply($('#trigger'), ['pagination', fakeEvent, fakeData]);
However its entirely possible that they don't expose that method. Do you have the code somewhere?
UPDATE
After actually finding out what this plugin is I read up on the docs and you should be able todo:
$('#trigger').stackUp(...)
View source here: http://jqueryui.com/demos/widget/default.html - and look at the random
function that is defined.
Alternatively you could just define the function in a more global scope and then use it as part of the config object and when you want to apply it to specific elements.
Upvotes: 1