Javascript 动态重新加载后的jQuery选择器和$(此)
我需要一些帮助。我每5秒在div中加载一个条目列表。每个条目都是一个div,具有唯一的ID。如下所示:Javascript 动态重新加载后的jQuery选择器和$(此),javascript,jquery,Javascript,Jquery,我需要一些帮助。我每5秒在div中加载一个条目列表。每个条目都是一个div,具有唯一的ID。如下所示: <div class="entry"> <div class="textbox"> <p class="entry-text"> <?php echo $text;?> </p> </div> <div class="infobox"> <p class="date
<div class="entry">
<div class="textbox">
<p class="entry-text">
<?php echo $text;?>
</p>
</div>
<div class="infobox">
<p class="date"><a #<?php echo $id;?> id="<?php echo $id;?>" href="gen_details.php?id=<?php echo $id;?>"><?php echo $t;?></a> </p>
<p class="ip"><?php echo $ip;?></p>
</div>
在重新加载之前,它工作得非常好。它似乎丢失了a href的句柄,而不是执行该过程,而是转到gen_details.php
我尝试使用.on(),但我不知道如何使用.on()获取条目的ID,因为我无法使用$(this)(afaik)
我希望我至少能把我的问题解释清楚一半。英语不是我的第一语言,所以它不是那么容易
提前感谢。试试这个选择器
Live click event bind event handler to element even after you reload some element. Default click event bind to element when a page load once you reload that element then it also delete event handler of that element.
works on till jquery 1.7 version.
$('.date a').live('click',(function (e) {
e.preventDefault()
var dataString = 'id=' + $(this).attr("id");
//alert(dataString);
$.ajax({
type: "POST",
url: "gen_details.php",
data: dataString,
success: function(data) {
$("#content").hide().fadeOut('fast');
$("#content").html(data).show('fast');
refresh = 0;
},
});
});
//when jQuery > 1.7 then used this method
$('body').on('click' '.date a',function () {
//call
});
$('div').on('click', '.date a', function () {
这将把事件委托给其父div。因此,它也适用于动态创建的元素。尝试此选择器
$('div').on('click', '.date a', function () {
这会将事件委托给其父div。因此,它也应该适用于动态创建的元素。如何跟踪脚本中的秒数?你能把那部分贴出来吗?当然可以。我使用window.setInterval();如下所示:window.setInterval(函数(){update(0);},5000);啊,很好!不过,您使用刷新的目的是什么?每次清除
#content
div的html时,您都会将绑定的事件剥离出来。每次ajax调用都需要恢复该事件。更新();函数:函数更新(flashy){if(flashy==0){$('#content').load('gen#content.php');/.fadeOut('fast').fadeIn('fast');}else{$('#content').load('gen#content.php').fadeOut('fast')。fadeIn('fast');left=240;$('text#text#counter')。text(left);document getElementById('new entry')).value=document.getElementById('new-entry').defaultValue;}}}我只加载了一个DIV。如果您只想刷新,请使用以下命令:window.setInterval(function(){document.location.reload(true);},5000);如何记录脚本中的秒数?你能把那部分贴出来吗?当然可以。我使用window.setInterval();如下所示:window.setInterval(函数(){update(0);},5000);啊,很好!不过,您使用刷新的目的是什么?每次清除#content
div的html时,您都会将绑定的事件剥离出来。每次ajax调用都需要恢复该事件。更新();函数:函数更新(flashy){if(flashy==0){$('#content').load('gen#content.php');/.fadeOut('fast').fadeIn('fast');}else{$('#content').load('gen#content.php').fadeOut('fast')。fadeIn('fast');left=240;$('text#text#counter')。text(left);document getElementById('new entry')).value=document.getElementById('new-entry').defaultValue;}}}我只加载了一个DIV。如果您只想刷新,请使用以下命令:window.setInterval(function(){document.location.reload(true);},5000);我使用的是jQuery 1.9,在此版本中删除了.live()。感谢.jQuery1.9使用$(document).on(“单击“,”.date a',function(){});我使用的是jQuery 1.9,在此版本中删除了.live()。感谢.jQuery1.9使用$(document).on(“单击“,”.date a',function(){});“单击”后缺少逗号“单击”后缺少逗号