2011-08-17 99 views
0

我有一个按钮,当你点击这个按钮时,它动态地创建第二个按钮。我需要将点击事件放置到动态创建的按钮(第二个按钮)上,但我的点击功能不起作用。如何将动作添加到在jquery中动态创建的元素中?

如何让我的点击功能与动态创建的元素一起工作?

+2

你要告诉我们你是如何做到这一点的? –

+0

请显示您的代码和错误消息或不工作的具体描述。 –

回答

1

你必须使用jQuery的.live()功能,可以发现here

实施例:

$('button').live('click', function(){ 
    ... 
}); 
+0

太棒了,就是我一直在寻找的! –

2

您需要在点击事件创建后将其绑定到第二个按钮。或者使用jQuery Live或Delegate功能。

http://api.jquery.com/delegate/

附加一个处理程序,以一个或多个事件的 选择,现在还是将来相匹配的所有元素的基础上,一组特定的根 元素。

发布一些代码,如果你需要任何更多的帮助。

1

Here is an example

标记:

<button id="create">Create</button> 

<div id="container"> 
</div> 

脚本:

var count = 0; 
$("#create").click(function(e) { 
    var num = count += 1; 
    var newButton = $("<button>New " + num + "</button>").click(function() { 
     alert("Button " + num + " was clicked."); 
    }); 
    $("#container").append(newButton); 
}); 
0

需要使用jqueries活法附加的事件。它将把事件绑定到当前和未来元素的所有实例。

$('.classname').live('click', function() { 
    alert("triggered"); 
}); 

这样的单击事件被添加到与类名的类名的所有元素 - 即使你插入相同类别更多的元素。

0
<input id="but1" type="button" value="click"></input> 
<script> 
$(document).ready(function(){ 
    $('#but1').click(function(){ 
    var button = $(document.createElement('input')); 
     button.attr('id', 'but2'); 
     button.val('but2'); 
     button.attr('type', 'button'); 
     button.click(function(){alert('hello');}); 

     $(document.body).append(button); 

    }); 

}); 
</script> 
3

我知道这个问题被问得很久以前...
因为jQuery的V1.7正确的方式做到这一点是:

$(document).on("click",'.myNewlyCreatedElement', function() { 
    // Your action 
}); 

编号:http://api.jquery.com/on/

相关问题