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