2012-12-11 29 views
2

我有一個按鈕「添加」我點擊它然後一個保存按鈕將追加到我的div。這是工作,但我不能觸發「保存」按鈕的功能。如果我直接在代碼中粘貼「保存」 - 按鈕,它正在工作。我找不到我的錯誤...jquery插入後按鈕動作不起作用

<a class="save" href="#"><img src="images/save.png" alt="save_working" /></a> 
<a class="add_row" href="#"><img src="images/icon_add_light.png" alt="add" /></a><br> 
<div id="hinzu"></div> 


$(".save").click(function() { 
    alert("saveworking"); 
}); 


$(".add_row").click(function() { 
    $("#hinzu").append(' <a class="save" href="#"><img src="images/save.png" alt="savenotworking" /></a>'); 
}); 

這裏是一個與它的小提琴:http://jsfiddle.net/MgcDU/321/

爲什麼心不是用JS該工作追加方法?

回答

4

它是動態的,所以當你綁定事件時它不存在。對於您需要的情況下委託給實際在安裝了事件處理程序的時間存在一個元素:

$("#hinzu").on('click', '.save', function() { 
    alert("saveworking"); 
}); 
+0

感謝它工作正常!並感謝所有其他人都有同樣的答案,你們是偉大的人! – user1010775

0

這樣使用它:

$("#hinzu").on('click', ".save", function() { 
    alert("saveworking"); 
}); 
0

這是因爲當你嘗試做$(「。save」)它不存在。

如果有任何新的.save在你的厄運中並且分配了事件處理函數,你必須使用on()來監視。

$("#hinzu").on('click', '.save', function() 
{ 
    alert("This Does work"); 
}); 
0

它不工作,因爲$(".save").click()電話綁定onclick處理程序,其已經在調用點存在與save類的所有元素。

要同時綁定事件處理程序,其並未在結合時存在的元素,你必須使用$(document).on('click', '.save', function() { [...] })

0

如果你想保存你的代碼,使用:

<script type="text/javascript"> 
    $(function() { 
     $('.save').click(function() { 
      alert('saveworking'); 
     }); 
    }); 

    $(function() { 
     $('.add_row').click(function() { 
      alert('add_row'); 
     }); 
    }); 
</script> 

一更多的方法來做到這一點:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('.save').click(function() { 
      alert('saveworking'); 
     }); 

     $('.add_row').click(function() { 
      alert('add_row'); 
     }); 
    }); 
</script>