varelem=$("input[type=text]").eq(0);elem.on("click",function(e){$(e.target).blur();})
我們提供的服務(wù)有:網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、濮陽(yáng)縣ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的濮陽(yáng)縣網(wǎng)站制作公司
我查了一下 你使用的這個(gè)插件的文檔,自帶解綁函數(shù):
$dp.unbind (4.8beta4新增)
而你采用的是 Jquery 的解綁方法,你并不能確定 這款插件綁定的事件 是 focus ,還是 click 還是別的。
$("#element").click(function(){}); //綁定點(diǎn)擊事件函數(shù)
$("#element").unbind(); //解綁點(diǎn)擊事件
先簡(jiǎn)單說下jQuery綁定和解綁點(diǎn)擊事件的方法
$("#element").click(function(){}); //綁定點(diǎn)擊事件函數(shù)
$("#element").unbind(); ? ? ? ?//解綁點(diǎn)擊事件
$("#element").click(function(){}); ?//綁定其它函數(shù)
即,要對(duì)一個(gè)綁定過點(diǎn)擊事件的元素綁定其它函數(shù),需先對(duì)其解綁。
上面的代碼看起來好簡(jiǎn)單,但是實(shí)際應(yīng)用中卻要復(fù)雜的多。舉一個(gè)項(xiàng)目中的實(shí)例吧。
兩個(gè)顯示標(biāo)簽云的DIV,DIV1顯示選中的標(biāo)簽,DIV2顯示可選的標(biāo)簽。DIV2中的任一個(gè)標(biāo)簽被點(diǎn)中后會(huì)從DIV2中消失并添加到DIV1中,再在DIV1點(diǎn)擊它時(shí),它又會(huì)回到DIV2。兩個(gè)DIV中的標(biāo)簽總數(shù)、單個(gè)標(biāo)簽的內(nèi)容保持不變。這個(gè)效果我花了差不多一個(gè)半小時(shí)才搞定,就是因?yàn)閷?duì)jQuery綁定和解綁點(diǎn)擊事件理解的不到位。
我最開始的理解是:當(dāng)一個(gè)標(biāo)簽從DIV1中移除并添加到DIV2中時(shí),其原來綁定的所有事件都會(huì)消失,我可以從DIV2中析取這個(gè)標(biāo)簽并給它綁定新的點(diǎn)擊事件。結(jié)果是:再點(diǎn)擊它時(shí)它并沒有回到DIV1,而是還是在DIV2中,只是位置被移到了最后。我誤以為這個(gè)標(biāo)簽還屬于DIV1,殊不知不是DIV的歸屬問題,而是點(diǎn)擊事件的綁定問題。
先看下jquery $.fn $.fx是什么意思
$.fn是指jquery的命名空間,加上fn上的方法及屬性,會(huì)對(duì)jquery實(shí)例每一個(gè)有效。
如擴(kuò)展$.fn.abc(),即$.fn.abc()是對(duì)jquery擴(kuò)展了一個(gè)abc方法,那么后面你的每一個(gè)jquery實(shí)例都可以引用這個(gè)方法了.
那么你可以這樣子:$("#div").abc();
這個(gè)您最好做一個(gè)全局的變量來判斷,這樣才好控制其執(zhí)行與不執(zhí)行,省去多余的重復(fù)的綁定。
另外一種就是實(shí)例開始已經(jīng)對(duì)元素綁定了事件,那么只需要unbind其事件即可,前提是fn里的綁定事件也是用bind綁定的。
var?isbind=true;
function?jiebang(){
isbind=false;
}
$(function(){
$('.ABC').swipeSS();
});
;(function(win,$){
$.fn.swipeS?=?function(options){
return?this.each(function(){
$(this).on("touchstart",?function(event)?{
if(!isbind){return;}//這里判斷
alert(?$(?this?).css('height')?);
}
}
}
直接把onchange這個(gè)屬性去掉就好了,removeAttr這個(gè)方法,去了解一下
$(selector).unbind();
或者
$(selector).off();
如果指定事件,把事件名字傳參就可以了