Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态重新加载后的jQuery选择器和$(此)_Javascript_Jquery - Fatal编程技术网

Javascript 动态重新加载后的jQuery选择器和$(此)

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

我需要一些帮助。我每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"><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(){});“单击”后缺少逗号“单击”后缺少逗号