tinguo002

           

          jquery動(dòng)態(tài)添加刪除div--事件綁定,對(duì)象克隆

          來源 :http://blog.csdn.net/guanghua2009/article/details/6644272

           我想做一個(gè)可以動(dòng)態(tài)添加刪除div的功能。中間遇到一個(gè)問題,最后在phpchina問答區(qū)版主的熱心幫助下解答了(答案在最后)        使用到的jquery方法和思想就是:事件的綁定和銷毀(unbind),另外還可以使用clone,通過克隆可以很好的解決這個(gè)問題          相關(guān)描述如下

          功能:點(diǎn)擊增加,自動(dòng)添加一個(gè)iptdiv 點(diǎn)擊 iptdiv后的 X 自動(dòng)刪除當(dāng)前div

          問題:默認(rèn)存在的(也就是頁面加載進(jìn)來的)的那個(gè)iptdiv 后的 X 點(diǎn)擊有效,可以刪除當(dāng)前 iptdiv  但是 jquery 動(dòng)態(tài)添加進(jìn)的 iptdiv 則點(diǎn)擊沒有效果。請(qǐng)各位大俠給看看,提供些意見。我要的就是動(dòng)態(tài)添加和刪除div 問題代碼如下: 
          <script type="text/javascript" src="jquery.js"></script>
          <body>
          <form action="" method="post" enctype="multipart/form-data">
          <label>請(qǐng)選擇上傳的圖片</label>
          <a href="javascript:addimg()" >增加圖片</a>
          <div id="mdiv">
          <div >
          <input type="file" name="img[]" /><a href="#" name="rmlink">X</a>
          </div>
          </div>
          <input type="submit" name="submit" value="上傳圖片" />
          </form>
          <script type="text/javascript" >
          $(document).ready(function(){
          $("a[name=rmlink]").click(function(){
          $(this).parent().remove();
          })
          })
          function addimg(){
          $("#mdiv").append('<div ><input type="file" name="img[]" /><a href="#" name="rmlink">X</a></div>');
          }
          </script>
           

          用jquery方法的綁定偵聽和銷毀來解決動(dòng)態(tài)div的增加刪除:

          正確代碼:
          <script type="text/javascript" >
          $(document).ready(function(){
           bindListener();
          })
          
          function addimg(){
           $("#mdiv").append('<div ><input type="file" name="img[]" /><a href="#" name="rmlink">X</a></div>');
          
           // 為新元素節(jié)點(diǎn)添加事件偵聽器
            bindListener();
          }
          
          // 用來綁定事件(使用unbind避免重復(fù)綁定)
          function bindListener(){
           $("a[name=rmlink]").unbind().click(function(){
            $(this).parent().remove();
              })
          }
          </script>
          
          這中間就是存在一個(gè)事件綁定的過程,如果沒有的話通過js加進(jìn)來的div內(nèi)不事件并不會(huì)被執(zhí)行,添加了偵聽事件功能后才能正確運(yùn)行
           

          用jquery的clone方法來解決動(dòng)態(tài)div的增加刪除:

          這里還有更好的寫法,我做了些許的修改,也許弄巧成拙了。但是功能實(shí)現(xiàn)了,更多的請(qǐng)參考phpchina論壇的幫助:http://bbs.phpchina.com/viewthread.php?tid=180911&extra=&page=1

          <body>
          <div style="display:none;">
          <!--clone div start-->
              <div >
                  <input type="file" name="img[]" /><a href="#" name="rmlink">X</a>
              </div>
          </div>
          <!--clone div end-->
          <form action="dowater.php" method="post" enctype="multipart/form-data">
          <label>請(qǐng)選擇上傳的圖片</label>
          <a href="#" id="addimg" >增加圖片</a>
          <div id="mdiv">
              <div >
              <input type="file" name="img[]" /><a href="#" name="rmlink">X</a>
              </div>
          </div>
          <input type="submit" name="submit" value="上傳圖片"  />
          </form>
          <script type="text/javascript" >
          var temp; 
          $(document).ready(function(){        
           temp = $(".iptdiv:first");
           $("a[name=rmlink]").click(function(){
            $(this).parent().remove();
              })
           $("#addimg").click(function(){
            temp.clone(true).appendTo($("#mdiv"));
           })
          })
          </script>
          </body>


          歡迎大家訪問我的個(gè)人網(wǎng)站 萌萌的IT人

          posted on 2012-06-29 19:53 一堣而安 閱讀(3999) 評(píng)論(0)  編輯  收藏 所屬分類: js_css

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 南靖县| 西乌| 白银市| 顺昌县| 潼关县| 科尔| 满洲里市| 盈江县| 南阳市| 阳泉市| 广灵县| 沁源县| 南投县| 垣曲县| 安康市| 皋兰县| 呼图壁县| 张家港市| 繁峙县| 大宁县| 台中县| 罗江县| 大竹县| 公安县| 丹阳市| 赤水市| 曲阜市| 扶沟县| 平和县| 弥勒县| 香港 | 牟定县| 平度市| 淳化县| 房山区| 龙泉市| 德州市| 红桥区| 庆元县| 安化县| 兴安盟|