Jquery 加载ajax内容后单击“不工作”
在ajax调用并返回包含html(数据)的内容后,如何使live('click',function()”生效? 经过4个小时的搜索,我想我最好问一下,因为我一无所获 这一部分正在发挥作用:Jquery 加载ajax内容后单击“不工作”,jquery,ajax,Jquery,Ajax,在ajax调用并返回包含html(数据)的内容后,如何使live('click',function()”生效? 经过4个小时的搜索,我想我最好问一下,因为我一无所获 这一部分正在发挥作用: $.ajax({ type: "POST", url: "loadAlbum.php", data: dataString, success: function(data){ $(".loader").html(data, {}, function(){
$.ajax({
type: "POST",
url: "loadAlbum.php",
data: dataString,
success: function(data){
$(".loader").html(data, {}, function(){
//content is loaded now
//need to get the function below working in this part of the content
});
},
error : function(data) { }
});
});
我需要这个在上面的ajax中工作:
$('.divName as inside loader').live('click',function(){
alert('gotClicked');
var vidItem = $(this).attr('data');
vidItem = vidItem.split('-'); var bookID = vidItem[0]; var state = vidItem[1];
var dataString = 'bookID='+ bookID + '&state=' + state;
alert(dataString);
});
.live()
已被弃用。请改用.on()
$("body").on("click", "divClass", function(event){
alert('gotClicked');
});
另外,为了确保正确调用div,以这种方式调用div时,它不应该是div名称,而应该是div类
另外,使用
live()
和on()
需要在文档加载时存在的父级应用。如果在页面加载时您使用的这个divName不存在,则无法绑定到它。但是,如果绑定到body元素,则在单击时它将始终查找div。因为您正在添加通过ajax c返回给您的HTML数据总之,在将新HTML添加到DOM后,需要绑定函数。如果调用代码:
$('.divName as inside loader').live('click',function(){ ...
在更新DOM之前,jQuery将无法正确绑定事件。我不知道您何时在分析/设置code.live代码块。您必须在将返回的HTML附加到DOM之后应用.live代码,无论是在成功回调中还是在成功回调后调用的函数中(如果有)
希望这有帮助。很简单,因为数据是在加载js后附加的,所以您需要使用
$(selector).live('click', function(e){
alert('this is a click');
});
请注意,如果您经常这样做,可能会影响性能,在某些情况下,最好手动解除绑定并重新绑定。而使用
live()
不是很理想,你所拥有的应该可以工作。你是否看到你的gotClicked
警报?或者控制台中有任何错误?在ajax完成并显示内容后,我什么也没有得到。很抱歉,我们仍然在运行一个旧的jquery。使用$(选择器).on()函数。从jquery 1.7开始,.Live()方法已被弃用。也许你应该发布一个内容和真实代码的示例,而不是准代码,因为它不能帮助我们解决打字错误等问题。如果你绑定到body元素,这听起来很好"。我想我必须弄清楚。有没有一个好的例子可以使用?@KJS:我能想到的最好的例子是在@KJS:哦,我上面的代码示例绑定到body元素。它应该可以捕捉到对
中类为divClass
的元素的任何单击。谢谢Joel!我这是我将用来解决问题的代码。然而,在“url:”loadAlbum.php“脚本中使用jquery似乎也能解决问题。更简单,但您的解决方案可能更合适。请注意,第二个参数“divClass”可以是class或id。$(“body”)。on(“click”、“.divClass”、function(event){
或\$(“body”)。on(“click”、”#divId“,函数(事件){\n我会为你祈祷。
$(document).delegate(".classname","click",function(){
alert("ok");
});