最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery 事件隊(duì)列調(diào)整方法

 更新時(shí)間:2009年09月18日 14:42:17   作者:  
如何為已經(jīng)綁定A事件的對(duì)象添加B事件,由B事件判斷A事件是否觸發(fā)
大家都發(fā)現(xiàn),通過(guò)jQuery綁定事件是件非常容易的事情
復(fù)制代碼 代碼如下:

<TEXTAREA class=javascript name=code rows=15 cols=50>$("a").click(function(){
    console.info("A");
    return false;
});
</TEXTAREA>

但是A事件綁定后,我發(fā)現(xiàn)我需要B事件來(lái)決定其是否觸發(fā),好辦,現(xiàn)在就改。
復(fù)制代碼 代碼如下:

<TEXTAREA class=javascript name=code rows=15 cols=50>$("a").click(function(){
    console.info("B");
    return false;
});
$("a").click(function(){
    console.info("A");
    return false;
});
</TEXTAREA>

真的能夠阻止后面的click事件觸發(fā)嗎?事與愿違。
如果B事件需要通過(guò)異步調(diào)用來(lái)判斷A事件是否需要觸發(fā)呢?
復(fù)制代碼 代碼如下:

<TEXTAREA class=javascript name=code rows=15 cols=50>$("a").click(function(){
    $.ajax({
        url:"b.html",
        success:function(msg){
            if(msg){
                console.info("pass");
                return true;
            }else{
                console.info("nopass");
                return false;
            }
        }
    });
});
$("a").click(function(){
    console.info("B");
    return false;
});
</TEXTAREA>

事實(shí)發(fā)現(xiàn)根本不可能,那怎么辦呢?
先說(shuō)幾種思路:
將后綁定的事件通過(guò)另外一種觸發(fā),比如A事件是綁定在click上,那么B事件綁定在mouseover上,先觸發(fā)mouseover再通過(guò)它來(lái)阻止click事件。(后來(lái)經(jīng)過(guò)研究,發(fā)現(xiàn)這幾乎是不可能的事情)
將2個(gè)事件通過(guò)jquery的queue進(jìn)行處理。(這個(gè)確實(shí)可以解決先后觸發(fā)的問(wèn)題,但是現(xiàn)實(shí)的情況是項(xiàng)目中所有的事件綁定已經(jīng)全部寫(xiě)好,目前需要每個(gè)按鈕事件前都加上1個(gè)判斷的AJAX請(qǐng)求。要不就是所有的按鈕事件全部重寫(xiě),要么另外尋找一條路)
深入jQuery的事件機(jī)制,獲得其事件的隊(duì)列,針對(duì)其事件隊(duì)列進(jìn)行處理。
復(fù)制代碼 代碼如下:

<TEXTAREA class=javascript name=code rows=15 cols=50>//我們先讓其默認(rèn)綁定個(gè)事件,稱(chēng)其為A事件
$("a").click(function(){
    console.info(1);
    return false;
});
//現(xiàn)在我們要讓后面綁定的B事件先觸發(fā),并且控制A事件是否觸發(fā)
//獲取對(duì)象a綁定的事件對(duì)象中的click事件
var event = $("a").data("events").click;
//因?yàn)檫@個(gè)a在我們的B事件中也需要用到,為了防止this對(duì)象的改變,因此特地聲明變量that保存
var that = $("a");
//下面就是B事件了,但是貌似好像沒(méi)有綁定啊
var B = function(){
    $.ajax({
        url:"b.html",
        success:function(msg){
            if(msg){
                console.info("pass");
                tt.call(that);
            }else{
                console.info("nopass");
            }
        }
    });
return false;
};
//關(guān)鍵對(duì)象,盡請(qǐng)對(duì)其多關(guān)注
var tt;
//關(guān)鍵代碼,盡請(qǐng)多關(guān)注
for(var i in event){
    tt = event[i];
    event[i] = B;//如果注釋此行,下面2行必須取消注釋。效果一樣,原理不同...
//delete(event[i]);
    //that.click(B);
    break;
}
</TEXTAREA>

問(wèn)題貌似圓滿(mǎn)解決,但是AJAX的callback函數(shù)中的return,是否可以抓的到呢?

相關(guān)文章

  • jQuery中end()方法用法實(shí)例

    jQuery中end()方法用法實(shí)例

    這篇文章主要介紹了jQuery中end()方法用法,實(shí)例分析了end()方法的功能、定義與回到最近的一個(gè)"破壞性"操作之前的使用技巧,需要的朋友可以參考下
    2015-01-01
  • jQuery each函數(shù)源碼分析

    jQuery each函數(shù)源碼分析

    jquery each函數(shù)的使用頻率非常高,下面給大家介紹jQuery each函數(shù)源碼分析,一起看看吧
    2016-05-05
  • NiftyCube——輕松實(shí)現(xiàn)圓角邊框

    NiftyCube——輕松實(shí)現(xiàn)圓角邊框

    這篇文章主要介紹了NiftyCube——輕松實(shí)現(xiàn)圓角邊框
    2007-02-02
  • Jquery中增加參數(shù)與Json轉(zhuǎn)換代碼

    Jquery中增加參數(shù)與Json轉(zhuǎn)換代碼

    有時(shí)候,我們需要進(jìn)一步轉(zhuǎn)化為json表達(dá)式,參考Ext中的Ext.urlDecode函數(shù),我們可以實(shí)現(xiàn)一個(gè)相應(yīng)的jquery中使用的函數(shù)。
    2009-11-11
  • easyui取消表單實(shí)時(shí)驗(yàn)證,提交時(shí)統(tǒng)一驗(yàn)證的簡(jiǎn)單實(shí)例

    easyui取消表單實(shí)時(shí)驗(yàn)證,提交時(shí)統(tǒng)一驗(yàn)證的簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)?lái)一篇easyui取消表單實(shí)時(shí)驗(yàn)證,提交時(shí)統(tǒng)一驗(yàn)證的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-11-11
  • 使用jQuery實(shí)現(xiàn)圖片遮罩半透明墜落遮擋

    使用jQuery實(shí)現(xiàn)圖片遮罩半透明墜落遮擋

    這篇文章主要介紹了使用jQuery實(shí)現(xiàn)圖片遮罩半透明墜落遮擋,效果非常棒,小伙伴們做相冊(cè)的時(shí)候可以直接拿走使用。
    2015-03-03
  • Jquery倒計(jì)時(shí)源碼分享

    Jquery倒計(jì)時(shí)源碼分享

    這是一個(gè)基于jquey寫(xiě)的倒計(jì)時(shí)。當(dāng)然代碼有點(diǎn)小改動(dòng),只是改了一下展示效果。
    2014-05-05
  • 教你一步步用jQyery實(shí)現(xiàn)輪播器

    教你一步步用jQyery實(shí)現(xiàn)輪播器

    相信大家應(yīng)該都會(huì)看到在各大網(wǎng)站上都有一個(gè)輪播器的效果,于是自己不禁也想做一個(gè),查了資料,看了輪播器的原理,慢慢的試著做了做,最終效果勉勉強(qiáng)強(qiáng),但還是想總結(jié)出來(lái),或許對(duì)有需要的朋友們帶來(lái)一定的幫助,下面來(lái)一起看看吧。
    2016-12-12
  • 使用jquery提交form表單并自定義action的實(shí)現(xiàn)代碼

    使用jquery提交form表單并自定義action的實(shí)現(xiàn)代碼

    下面小編就為大家?guī)?lái)一篇使用jquery提交form表單并自定義action的實(shí)現(xiàn)代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • 關(guān)于html+ashx開(kāi)發(fā)中幾個(gè)問(wèn)題的解決方法

    關(guān)于html+ashx開(kāi)發(fā)中幾個(gè)問(wèn)題的解決方法

    在跟html+ashx打交道的園友們肯定會(huì)發(fā)現(xiàn),這種模式雖然優(yōu)美,但在開(kāi)發(fā)中會(huì)遇到一些難處理的地方。我也不例外,下面是自己在實(shí)際開(kāi)發(fā)中總結(jié)出來(lái)的幾條經(jīng)驗(yàn),希望跟大家分享,更希望得到大家的建議和更好的解決方法!
    2011-07-07

最新評(píng)論

渭南市| 舟曲县| 定日县| 龙胜| 太仓市| 梅州市| 光泽县| 卓尼县| 开原市| 呼玛县| 新昌县| 长兴县| 安达市| 山东| 钟祥市| 崇礼县| 和硕县| 兴业县| 台江县| 常州市| 玉溪市| 泰顺县| 浪卡子县| 东城区| 防城港市| 蓬安县| 保靖县| 潢川县| 商丘市| 潞城市| 西平县| 五台县| 卫辉市| 锡林浩特市| 满洲里市| 玉山县| 凤凰县| 德阳市| 白玉县| 苍溪县| 崇礼县|