:
(function($) {
$.fn.multiForm = function(options) {
var settings = $.extend({
titles : [],
nextButton: 'nl-next',
prevButton: 'nl-prev',
onNext: function(){}
}, options);
//#1 I first need to attach a click event on settings.nextButton element
//#2 So when that button is clicked, I want the user to use oNext() and return true or false which I will then capture inside this plugin
this.each(function(options) {
// some plugin code
});
}
}(jQuery));
これは、ユーザーがプラグインを使用する方法です。
if(typeof settings.onNext === 'function') {
var result = settings.onNext();
if(result) { ... }
}
あなたが他のボタンの場合と同様にあなたはnextButton
にクリックイベントを添付:
$(setting.nextButton).click(function() {
...
});
注nl-next
が有効なjQueryのセレクタではないこと。それはクラス名ですか?その場合は、セレクタに.
を必ず追加してください。
また、いくつかのコンテキストを渡して、ページにプラグインのインスタンスが複数ある場合に、このクラスのすべてのボタンにリスナーを追加しないようにすることもできます。
$('.' + setting.nextButton, someDivWrappingMyPlugin).click(function() {
...
});
クールです。しかし、私はあなたがそれを投稿しようとしている間に私の質問を更新しました。要素にクリックイベントを添付する必要があります – asprin
@asprin:私は自分の答えを更新しました。プラグインにクリックリスナーを追加することは、プラグインの外に追加することと変わりありません。 –
ありがとうございます。私はそれがそうであると思ったが、確信が持てなかった。システムが私にできるようになるとすぐに受け入れてupvoting。 – asprin