乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      直接用click不能為動(dòng)態(tài)元素綁定click事件?

       程序猿之家 2015-11-16
       本帖最后由 wuxiaolan91 于 2012-6-4 11:04 編輯



      1.出現(xiàn)問(wèn)題:   
        我們一般都是為已經(jīng)存在的元素去綁定事件,那么用同樣的綁定方法也能正確綁定動(dòng)態(tài)創(chuàng)建的元素嗎?

        我在我們孔明app的項(xiàng)目里動(dòng)態(tài)創(chuàng)建了一個(gè)元素,然后我又需要為這個(gè)元素綁定事件,要點(diǎn)擊這個(gè)動(dòng)態(tài)創(chuàng)建的元素的時(shí)候能夠在這個(gè)元素的右側(cè)復(fù)制這個(gè)元素出來(lái)
      1. $("動(dòng)態(tài)創(chuàng)建的元素").click(function(){
      2. console.log("事件已被綁定");
      3. ....
      4. }
      復(fù)制代碼
      ??墒俏矣脜s沒(méi)有半點(diǎn)反應(yīng),作為測(cè)試用的console語(yǔ)句的話(huà)不就是沒(méi)出來(lái)過(guò),后來(lái)經(jīng)同事提點(diǎn):你這個(gè)(綁定事件的)元素是不是動(dòng)態(tài)創(chuàng)建的?


      我就奇怪了,動(dòng)態(tài)創(chuàng)建的元素用click事件綁定就不行了嗎?

      2.問(wèn)題分析:
      我換了on來(lái)綁定事件,結(jié)果還是不行(后來(lái)發(fā)現(xiàn)不是不行,而是on綁定這種動(dòng)態(tài)元素得綁定在這個(gè)動(dòng)態(tài)元素的父元素或者祖父元素上,再把這個(gè)動(dòng)態(tài)元素作為參數(shù)傳進(jìn)去),on事件不行了,又開(kāi)始試live這個(gè)綁定事件,ok,在live這里,綁定成功,測(cè)試的console語(yǔ)句出來(lái)了,看看api,特別有指出,原來(lái)live是可以為現(xiàn)在還未創(chuàng)建的動(dòng)態(tài)元素綁定事件的,而bind事件則只能綁定已經(jīng)存在的元素。
      好吧,不多說(shuō)了上Code吧。
      1. <!doctype html>
      2. <html>
      3.         <head>
      4.                 <title>測(cè)試怎么綁定動(dòng)態(tài)元素的詳細(xì)情況</title>
      5.                 <body>
      6.                         
      7.                         <div id="container">
      8.                                 <button id="addSpan">添加元素</button>
      9.                                 
      10.                         </div>
      11.                         <p id="disc">提示語(yǔ)句</p>
      12.                         <script type="text/javascript" src="http://code./jquery-1.7.2.min.js"></script>
      13.                         <script type="text/javascript">
      14.                                 
      15.                                 $("#addSpan").click(function(){
      16.                                         $("#container").append($("<button id='clickAddEle'>click事件</button>"));
      17.                                         $("#container").append($("<button id='bindAddEle'>bind</button>"));
      18.                                         $("#container").append($("<button id='liveAddEle'>live</button>"));
      19.                                         $("#container").append($("<button id='onAddEle'>on</button>"));
      20.                                         $("#container").append($("<button id='delegateAddEle'>delegate</button>"));
      21.                                 });
      22.                                 //用click方法綁定
      23.                                 
      24.                                 $("#clickAddEle").click(function(){
      25.                                 var tiscContent = "click為動(dòng)態(tài)元素綁定事件成功1";
      26.                                         $("#disc").html(tiscContent);
      27.                                 });
      28.                                 $("#bindAddEle").bind("bind",function(){
      29.                                 var tiscContent = "bind為動(dòng)態(tài)元素綁定事件成功1";
      30.                                         $("#disc").html(tiscContent);
      31.                                 });
      32.                                 $("#liveAddEle").live("click",function(event){
      33.                                         var tiscContent = "live為動(dòng)態(tài)元素綁定事件成功1";
      34.                                         $("#disc").html(tiscContent);
      35.                                 });
      36.                                 /*
      37.                                 $("#liveAddEle").on("click",function(event){
      38.                                         var tiscContent = "on為動(dòng)態(tài)元素綁定事件成功1";
      39.                                         $("#disc").html(tiscContent);
      40.                                 });
      41.                                 */
      42.                                 $("#container").on("click","#onAddEle",function(event){
      43.                                         var tiscContent = "on為動(dòng)態(tài)元素綁定事件成功1";
      44.                                         $("#disc").html(tiscContent);
      45.                                 });
      46.                                 $("#container").delegate("#delegateAddEle","click",function(event){
      47.                                         var tiscContent = "delegate為動(dòng)態(tài)元素綁定事件成功1";
      48.                                         $("#disc").html(tiscContent);
      49.                                 });
      50.                                 
      51.                                 
      52.                         </script>
      53.                 </body>
      54.         </head>
      55. </html>
      復(fù)制代碼
      這里的demo你點(diǎn)擊"添加元素"按鈕后,會(huì)動(dòng)態(tài)創(chuàng)建幾個(gè)按鈕,不同的按鈕對(duì)應(yīng)不同的方法,如果你點(diǎn)擊了那個(gè)按鈕后,下面的描述文字有更新就說(shuō)明你的這個(gè)按鈕所代表的綁定事件的方法是游泳的。
      注意,on方法是jQuery1.7才添加進(jìn)去的方法,所以如果你的jQuery版本低于這個(gè),那么on方法就會(huì)不起作用。

      3.問(wèn)題總結(jié):
      為動(dòng)態(tài)元素綁定事件的話(huà),用click(),bind(),直接為這個(gè)元素綁定on()都不行,要用live()或者delegate()得給這個(gè)元素的上級(jí)元素綁定on方法,把這個(gè)元素作為參數(shù)傳進(jìn)去才行。





        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多