tinguo002

           

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

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

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

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

          問題:默認存在的(也就是頁面加載進來的)的那個iptdiv 后的 X 點擊有效,可以刪除當(dāng)前 iptdiv  但是 jquery 動態(tài)添加進的 iptdiv 則點擊沒有效果。請各位大俠給看看,提供些意見。我要的就是動態(tài)添加和刪除div 問題代碼如下: 
          <script type="text/javascript" src="jquery.js"></script>
          <body>
          <form action="" method="post" enctype="multipart/form-data">
          <label>請選擇上傳的圖片</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方法的綁定偵聽和銷毀來解決動態(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é)點添加事件偵聽器
            bindListener();
          }
          
          // 用來綁定事件(使用unbind避免重復(fù)綁定)
          function bindListener(){
           $("a[name=rmlink]").unbind().click(function(){
            $(this).parent().remove();
              })
          }
          </script>
          
          這中間就是存在一個事件綁定的過程,如果沒有的話通過js加進來的div內(nèi)不事件并不會被執(zhí)行,添加了偵聽事件功能后才能正確運行
           

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

          這里還有更好的寫法,我做了些許的修改,也許弄巧成拙了。但是功能實現(xiàn)了,更多的請參考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>請選擇上傳的圖片</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>


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

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

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 高雄县| 舟曲县| 河源市| 景东| 阳春市| 无极县| 台安县| 平果县| 乳山市| 陇西县| 平顶山市| 永昌县| 当涂县| 芦溪县| 凤庆县| 玛多县| 苏尼特左旗| 沾益县| 金秀| 五峰| 正定县| 泸定县| 固原市| 渝中区| 梧州市| 新郑市| 兴城市| 府谷县| 桐柏县| 都安| 临夏市| 甘南县| 浪卡子县| 开平市| 梁河县| 泽州县| 莱芜市| 大竹县| 毕节市| 贡嘎县| 尖扎县|