使所有javascript函数都适用于javascript编写的元素
因此,我有一个新按钮,当用户单击+按钮时,它由JavaScript编写 但是,新按钮似乎无法访问JavaScript单击功能 我想知道如何解决这个问题 JS使所有javascript函数都适用于javascript编写的元素,javascript,Javascript,因此,我有一个新按钮,当用户单击+按钮时,它由JavaScript编写 但是,新按钮似乎无法访问JavaScript单击功能 我想知道如何解决这个问题 JS $('div.btn-floating')。单击(函数(){ //警报(this.id); 如果(this.id==“addnew”){ dl=document.getElementById(“newpetprofiles”); dl.insertAdjacentHTML('afterbegin',''); } var morphFAB=$
$('div.btn-floating')。单击(函数(){
//警报(this.id);
如果(this.id==“addnew”){
dl=document.getElementById(“newpetprofiles”);
dl.insertAdjacentHTML('afterbegin','');
}
var morphFAB=$(“#覆盖”);
morphFAB.toggleClass('visible hidden');
if(morphFAB.hasClass('visible')){
$('#form').addClass('animated slideInUp');
}否则{
$('#form').removeClass('animated slideInUp');
}
})
Click函数为所有匹配元素迭代dom,并为这些元素添加事件处理程序。发生这种情况时,动态创建的按钮不存在。因此,没有附加任何事件处理程序。您需要使用jQuery.on
更改:
$('div.btn-floating').click(function () {
到
这将持续搜索所有匹配的元素,并在将它们附加到文档时添加事件处理程序。最好的解决方案是使用最接近的公共父级而不是文档。像这样:
$("<my common parent element>").on("click", "div.btn-floating", function () {
$(“”)。在(“单击”,“div.btn-floating”,函数(){
您将需要一个委托事件处理程序…如$(文档)。在('click',div.btn-floating',function(){
为什么这样做还有效?我承认普通的click函数不起作用?“normal.”click函数不查找将来创建的元素。只查找现在存在的元素。
$(document).on("click", "div.btn-floating", function () {
$("<my common parent element>").on("click", "div.btn-floating", function () {