例如我有这种情况。
$.getJQUERY(myUrl, {var:value}, function(i, data){
$.each(data.values, function(value){
$("body").append('<div id="div_no_'+i+'">'+value+'</div>);
// Here i dont want to place the EventListeners
})
});
$("div_no_1").click(function(){
// do something
});
有人可以帮我找到一种方法来建立这样的东西吗?
提前谢谢
大
哈德
答案 0 :(得分:1)
您可以使用.live()
点击处理程序,如下所示:
$("div[id^=div_no_]").live('click', function(){
// do something
});
这会侦听来自ID为div_no_
您只需要这一次,它将适用于您创建的所有div。
杰森的评论对你的情况也很有意义,如下:
$.getJQUERY(myUrl, {var:value}, function(i, data){
$.each(data.values, function(value){
$("body").append('<div id="div_no_'+i+'" class="clickme">'+value+'</div>');
})
});
$(".clickme").live('click', function(){
// do something
});
答案 1 :(得分:0)
这是Nick的回答,可以帮助您更好地理解jQuery和Javascript:
$.getJQUERY(myUrl, {var:value}, function(i, data){
$.each(data.values, function(value){
var myDiv = document.createElement('div');
$(myDiv).id('div_no_' + i).addClass('clickme').text(value);
$('body').append(myDiv);
})
});
$(".clickme").live('click', function(){
// do something
});
这样做的好处是,如果您决定在将来进行更改/更新,它会更加模块化。例如,如果您决定不再希望它为div
,您可以简单地将创建的元素类型更改为span
,这是您需要的唯一更改make(在此示例中授予变量称为myDiv
,但希望您将变量命名为更好:)。基本上,你不是直接渲染HTML,而是抽象它,以便jQuery / JS可以为你做繁重的工作。
不要试图窃取尼克的雷声,只是提供一个替代的,教学的例子。