標籤:其他 url 類比 zha sub 命名 data handle back
事件原由:
function promptImage(obj,callback){
console.log(obj.a)
$(‘#showImage‘).modal({backdrop:false}).on(‘hidden.bs.modal‘, function (e) {
$(‘#showImage‘).modal(‘hide‘)
})
.find(‘.submit‘).click(function(event){
$("#showImage").modal(‘hide‘)
var imgs = $("#showImage .up-thumbnail img")
callback({
url:imgs.attr(‘src‘)
})
//解除曆史綁定的 CLICK BUG
//$(this).unbind(‘click‘)
})
}
function clicks(){
var i = 0;
promptImage({a:i},function(res){
i++
console.log("i="+i)
//do
})
}
clicks()
當多次調用這個事件之後,你會發現這個 i 一直在增加 並沒有被清除!
移除事件
unbind(type [,data]) //data是要移除的函數
$(‘#btn’).unbind(“click”); //移除click
$(‘#btn’).unbind(); //移除所有
對於只需要觸發一次的,隨後就要立即解除綁定的情況,用one()
$(‘#btn’).one(“click”,function(){…….});
類比操作
可以用trigger()方法完成類比操作。
$(‘#btn’).trigger(“click”);
$(‘#btn’).click();
觸發自訂事件
$(‘#btn’).bind(“myclick”,function(){….});
$(‘#btn’).trigger(“myclick”);
傳遞資料
trigger(type [,data])
$(‘#btn’).bind(“myclick”,function(event,message1,message2){………..});
$(‘#btn’).trigger(“myclick”,[“傳給message1″,”傳給message2”]);
執行預設操作
$(“input”).trigger(“focus”);
//不僅會觸發input元素繫結的focus事件,還會觸發預設操作——得到焦點。
$(“input”).triggerHandler(“focus”);
//只觸發綁定事件,不執行瀏覽器預設操作
其他用法
綁定多個事件類型
$(“div”).bind(“mouseover mouseout”,function(){…..});
添加事件命名空間
$(“div”).bind(“click.plugin”,function(){……});
在所綁定的世界類型後面添加命名空間,這樣在刪除事件時只需要指定命名空間即可。
$(“div”).unbind(“.plugin”); //刪除空間內的事件
$(“div”).trigger(“click!”); //觸發所以不包含在命名空間中的click方法
如果包含在命名空間的也要觸發:
$(“div”).trigger(“click”);
部分轉自:http://www.cnblogs.com/zhangq723/archive/2011/04/02/2003358.html
移除jQuery綁定的click曆史事件