我在函数中有这个:
$('#users').append($("<div id='usuarios'>").text(mensaje[1][i]));
我想为这个新的<div>
创建一个onclick事件。我怎样才能做到这一点?
我在功能之外尝试这样做:
$(document).ready(function(){
$('#usuarios').click(function() {
alert("click");
});
});
但它不起作用。
答案 0 :(得分:7)
对于jQuery 1.7+,您可以使用.on()
将事件处理程序附加到父元素$(document).ready(function(){
$('body').on('click', '#usuarios', function() {
alert("click");
});
});
或更好:
$(document).ready(function(){
$('#users').on('click', '#usuarios', function() {
alert("click");
});
});
答案 1 :(得分:5)
你可以内联(通过在.append
之后链接.text
),因为这就是jQuery API的工作方式,但你也可以把它放在一个看起来更好的变量中:
var usarios = $("<div id='usuarios'>").text(mensaje[1][i]);
usarios.click(function() {
alert('click');
});
$('#users').append(usarios);
答案 2 :(得分:3)
我也遇到过这个问题,如果你把它放在文件中,那么它就行不通了。我认为这是我的语法,但事实并非如此。
使用
$(document).on('click', "input[id^='radiobox']", function () {
alert('hihi');
});
然后它起作用
答案 3 :(得分:1)
两种方式
1.Jquery 1.7 +
$(document).ready(function(){
$('body').on('click', '#usuarios', function() {
alert("click");
});
});
2.Jquery&LT; 1.7
$(document).ready(function(){
$('body').delegate('#usuarios','click', function() {
alert("click");
});
});
答案 4 :(得分:0)
您正在动态创建元素,因此普通事件处理程序将无法正常工作。您必须使用on()
将事件处理程序附加到您的文档。
$(document).on('click', "#usuarios", function() {
// do your job here
});