tinguo002

           

          jquery動態添加刪除div--事件綁定,對象克隆

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

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

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

          問題:默認存在的(也就是頁面加載進來的)的那個iptdiv 后的 X 點擊有效,可以刪除當前 iptdiv  但是 jquery 動態添加進的 iptdiv 則點擊沒有效果。請各位大俠給看看,提供些意見。我要的就是動態添加和刪除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方法的綁定偵聽和銷毀來解決動態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>');
          
           // 為新元素節點添加事件偵聽器
            bindListener();
          }
          
          // 用來綁定事件(使用unbind避免重復綁定)
          function bindListener(){
           $("a[name=rmlink]").unbind().click(function(){
            $(this).parent().remove();
              })
          }
          </script>
          
          這中間就是存在一個事件綁定的過程,如果沒有的話通過js加進來的div內不事件并不會被執行,添加了偵聽事件功能后才能正確運行
           

          用jquery的clone方法來解決動態div的增加刪除:

          這里還有更好的寫法,我做了些許的修改,也許弄巧成拙了。但是功能實現了,更多的請參考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>


          歡迎大家訪問我的個人網站 萌萌的IT人

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

          導航

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          收藏夾

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 志丹县| 灵山县| 韩城市| 光山县| 商丘市| 永济市| 中宁县| 临邑县| 隆化县| 德清县| 阳朔县| 丁青县| 佳木斯市| 洛阳市| 连南| 通州区| 临漳县| 深泽县| 滨海县| 长宁区| SHOW| 景泰县| 益阳市| 卢氏县| 泊头市| 乌鲁木齐县| 集贤县| 伊吾县| 新安县| 肥乡县| 保康县| 库伦旗| 贵州省| 宁化县| 青神县| 庆安县| 广东省| 县级市| 城固县| 区。| 屏东县|