父容器的ajax重新加载后链接停止工作

Posted

技术标签:

【中文标题】父容器的ajax重新加载后链接停止工作【英文标题】:Link stops working after ajax reload of parent container 【发布时间】:2011-05-05 10:09:52 【问题描述】:

在我的页面 (LINK) 上,我想添加以前添加的视频的 ajax 分页列表。该列表工作正常,直到我转到下一页。然后,即使我正在使用 livequery,整个事情也会停止反应。即使将父 div 引入更新的 div 也不能解决问题。任何想法发生了什么?

父容器:

    <div id="videos-wrapper">
        <div class="videos-list">
            <h3>Previous Videos</h3>
            DATA  GOES HERE
        </div>
    </div>

更新的html

<ul id="videos- page ">
    % for obj in objects %
        <li>
            <a href="#" class=" obj.id ">
                <img src="obj.video.thumbnail_url"  />
            </a>
        </li>
    % endfor %
</ul>

% if prev %
    <a href="#" class="vid-navi">
        <span class=" prev ">prev</span>
    </a>
% endif %    

% if next %
    <a href="#" class="vid-navi">   
        <span class=" next ">next</span>  
    </a>
% endif %

js:

$('#videos-wrapper .vid-navi').livequery('click', function(e) 
    e.preventDefault();
    var page = $("span", this).attr('class');

    alert("GO");

    $.ajax(
        type: "POST",
        url: "/play-forward/change-page",
        data: "page=" + page,
        dataType: "json",
        success: function(data)
            $('.videos-list').html(data['html']);
        
    );
    return false;
);

【问题讨论】:

【参考方案1】:

我一直使用 jQuery 的原生 live() 来执行此操作。看起来像是一个简单的交换你在这里的东西。

http://api.jquery.com/live/

【讨论】:

嗯,它有效。但是为什么附加功能(应该比内置功能更好)在这里不起作用?没有实际需要,我用得太急了? livequery 比 jQuery 核心早几年就有这个能力,但是那个时候 jQuery 核心团队一直在努力工作。我自己也很久没有使用 livequery 了。

以上是关于父容器的ajax重新加载后链接停止工作的主要内容,如果未能解决你的问题,请参考以下文章

空闲后查询停止工作

页面重新加载后事件停止触发

js代码在导航路线后停止工作而无需重新启动页面

为啥 React Native iOS 模拟器的重新加载快捷方式有时会停止工作?

Laravel 刀片模板停止重新加载主布局

如何停止预加载?