文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>jQuery自製Plugin-Bind事件函式時檢查有沒有Bind過

jQuery自製Plugin-Bind事件函式時檢查有沒有Bind過

时间:2010-10-20  来源:黃偉榮

 

(function ($) {
    //jquery object擴展
    $.extend($.fn, {
        BindCheck: function (id, type, callback) {
            ///<summary>檢查有沒有重覆的id,沒有才Bind,如果沒有給id,就判斷有沒有重覆的type</summary>

            if (arguments.length == 2) {
                callback = type;
                type = id;

                if (!(this.data("events") && this.data("events")[type])) {
                    this.bind(type, callback);
                }
            } else {
                var bindCheck = $.data(this,"BindCheck") || $.data(this,"BindCheck", {})
                if (!bindCheck[id]) {
                    this.bind(type, callback);
                    bindCheck[id] = true;
                } 
            }
        }
    });
})(jQuery)

 

範例

HTML:

<input id="test1" type='button' value="test 1"/>
<input id="test2" type='button' value="test 2"/>

 

JS:

$(function(){
    $("#test1").BindCheck("click",function(){ alert(1)});    
    $("#test1").BindCheck("click",function(){ alert(2)}); 
    $("#test1").BindCheck("click",function(){ alert(3)});
    
    $("#test2").BindCheck("test2-1","click",function(){ alert(1)});    
    $("#test2").BindCheck("test2-1","click",function(){ alert(2)}); 
    $("#test2").BindCheck("test2-2","click",function(){ alert(3)}); 
    $("#test2").BindCheck("test2-2","click",function(){ alert(4)}); 
})

 

說明

 

2-5是設定test1的click 事件函式,以type做區隔,一個type只會Bind一次,所以按下test1,只會 alert(1)

6-9是設定test2的click 事件函式,以id做區隔,一個id只會Bind一次,所以按下test2, 會alert(1)、alert(3)

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载