私の主な質問は、イベント ハンドラー、特にマウス入力イベントから何が渡されるかです。
以下のようにプラグインにコードがあります。
(function ($, undefined) {
$.fn.MyPlugin= function (options) {
var defaults = {
mpClickCallback: defaultCallback,
mpEnterCallback: defaultCallback,
mpExitCallback: defaultCallback
};
var settings = $.fn.extend(defaults, options);
var list= $(this).find("#list");
var items= $(menuList).find("li");
var defaultCallback = function (bool, data, element){
};
$(list).each(function (){
$(this).mouseenter(function(e){
settings.mpEnterCallback.call(true, e, this);
})
.mouseleave(function(evt){
settings.mpExitCallback.call(true, evt, this);
})
.click(function(evt){
settings.mpClickCallback.call(true, evt, this);
});
});
}
})(jQuery);
上記のコードにより、次のハンドラーが次のパラメーターで起動します。
$("#MyLists").MyPlugin({
mpEnterCallback(e, el){
console.log("event data: " + e);
console.log("element" + el);
});
最初のパラメーターを省略すると、コールバックで el オブジェクトが undefined になります。settings.mpEnterCallback.call(e, this);
単純なコールバック関数を提供しようとしています。これにより、HTML スクリプトで、マウスの出入り時に要素のコード ハンドラーを作成できるようになります。
HTML の例:
<div id="MyLists">
<ul id="mylist-list">
<li>
<div class="list-item">My first list item
<a href="#item1">image link <span>link item</span> </a>
</div>
<div class="list-item-footer">
image here
image here
</div>
</li>
</ul>
</div>
プラグイン内のすべての要素にハンドラーを提供しようとしています。それらはすべてページに機能を提供するためです。
イベント ハンドラーのパラメーターを決定する理由と方法を教えてください。ほとんどの場合、最初のパラメーターにイベント データがありますが、それを使用すると何も機能しません。イベント ハンドラーの偶数データを取得できるのは、3 つのパラメーターを使用するときだけです。