jquery ajax 单击时调用,仅有效一次

2023-12-15

我有这个简单的 jquery 代码。单击时,它会获取标签的 URL,加载当前内容旁边的页面,滑动它并删除旧内容。 页面的状态与以前完全相同,相同的元素没有额外的类或样式。 问题是下一个 ajax 调用不起作用。也许我需要 .unbind() 一些东西?

我对 jquery 和 javascript 很陌生,所以我很迷失。非常感谢你的帮助 :)

<script  type="text/javascript">
    $(document).ready(function(){ 
        loadPage();
    });
    function loadPage(url) {
        if (url == undefined) {
            $('body').load('index.html header:first,#content,footer', hijackLinks);
        } else {
            $.get(url , function(data) {
                $('body').append(data);
                $('body>meta').remove();
                $('body>link').remove();
                $('body>title').remove();
                $('body').append(direction);
                sm = $(window).width();
                if(direction == "leftnav"){
                    $('body>header:last,body>#content:last,footer:last').css("left", "-" + sm + "px");
                    footerheight = $('body>#content:last').outerHeight(false) + $('body>header:last').outerHeight(true) ;
                    $('footer:last').css("top", footerheight);
                    $('body>header,body>#content,footer').css("-webkit-transition-duration","0.5s")
                    $('body>header,body>#content,footer').css("-webkit-transform","translate(" + sm + "px,0px)");
                };
                if(direction != "leftnav"){
                    $('body>header:last,body>#content:last,footer:last').css("left", sm + "px");
                    footerheight = $('body>#content:last').outerHeight(false) + $('body>header:last').outerHeight(true) ;
                    $('footer:last').css("top", footerheight);
                    $('body>header,body>#content,footer').css("-webkit-transition-duration","0.5s")
                    $('body>header,body>#content,footer').css("-webkit-transform","translate(-" + sm + "px,0px)");
                };
                setTimeout(function(){
                    $('body>header:not(:last),body>footer:not(:last),body>#content:not(:last)').remove()
                },500); 
                setTimeout(function() {
                    $('body>header,body>footer,body>#content').removeAttr('style') 
                },500);
            });
        }
    }
    function hijackLinks() {
        $('a').click(function(e){
            e.preventDefault();
            loadPage(e.target.href);
        direction = $(this).attr('class');
        });
    }
</script>

由于您正在动态加载内容,这将替换您的内容body您的事件处理程序很可能不会保留。

要解决此问题,您需要调整点击处理程序以使用live() or delegate()

$('a').live("click", function(e){
    e.preventDefault();
    loadPage(e.target.href);
    direction = $(this).attr('class');

});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jquery ajax 单击时调用,仅有效一次 的相关文章

随机推荐

  • 在Python中使用中文构建字典

    这是我第一次来这里 而且我对 Python 世界还是个新手 我也在学习中文 我想创建一个程序来使用字典复习中文词汇 这是我通常使用的代码 usr bin python coding utf 8 dictionary Hello 你好 Sim
  • 从 Flask 中的数据库中删除元素

    我想确保我在这里遵循最佳实践 我有一个从数据库中提取的数据表 在最后一列中 我有用于编辑或删除该行的链接 我觉得我总是被告知永远不要使用 GET 请求修改服务器上的数据 除了 GET 请求之外 我将如何处理删除此数据行 数据表的代码如下 t
  • 我们如何将用户和机器人消息记录到微软机器人框架中的cosmos db

    我使用 microsoft bot Framework v4 sdk 创建了一个聊天机器人 我想将机器人用户和机器人消息记录到 cosmos db 我只能使用下面的博客记录用户消息 我希望记录用户和机器人的响应 值得庆幸的是 这很容易 因为
  • Java 属性的字段隐藏

    我刚刚开始学习 Java 所以如果答案有些明显 请耐心等待 我做了一些研究但没有结果 据我了解 属性不会被覆盖 而只是隐藏字段 为了确定是否使用超类或子类中的属性 Java将检查引用的类型 然后我不明白这里的输出 public class
  • JOLT 转换以沿数组复制单个值

    我想将 JSON 转换为键值对 并同时复制特定的单个值 即 timestamp 对于所有这些对 输入 JSON Timestamp 2018 05 13T14 57 09 first key 1023 another key 1987 ye
  • 如何在 git diff 输出中正确显示重音

    当我运行 git diff 命令时 文件列表中所有带有重音符号的文件显示效果不佳 git diff name status xxxx yyyyyy return M 303 251 303 251 txt 我怎样才能保留口音来拥有这个 M
  • 函数结构不遵循的问题(PHP)

  • 带有消息“无法将类型(字符串)的变体转换为类型(双精度)的 EVariantTypeCastError 类”

    使用 Delphi 和 FastReport 在 Delphi 内调试时 紧接此行之后 我收到此错误消息
  • 在 Android 应用程序中解压 SD 卡上的压缩文件

    我有一个压缩密码保护的视频文件保存在 Android 模拟器的 SD 卡上 现在我想通过代码将该视频文件解压到SD卡上 我怎样才能做到这一点 有什么帮助或代码吗 提前致谢 import android util Log import jav
  • 如何在 Swift 3 中转置数组长度不等的矩阵

    我的数组是 Int 类型 array 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 我希望转置结果为 array 1 4 7 11 14 2 5 8 12 15 3 6 9 13 16 0 0 10 0 0
  • X-Frame-Options 标头在防止恶意框架方面有多有用?

    添加X Frame Options DENY响应标头有助于防止网页的恶意框架 作为一种解决方案 它肯定比客户端 JavaScript 解决方案更好 但它到底有多有用呢 所有 现代 浏览器都支持它 意图劫持您网站的黑客是否可以绕过它 埃里克
  • 更改网址而不刷新?

    我在互联网上发现了一个应用程序 当您单击其中的 A 链接时 它将重定向到 A 页面 而无需刷新整个位置并更改 url 地址栏 我知道这可能是因为 JQuery 可以访问客户端浏览器 Please帮我解决这个问题 使用历史API你可以做这样的
  • IE 浏览器中的 CSS 媒体查询支持

    请帮助我如何使用 IE 浏览器的媒体查询 我遇到过一个 jquery 库 http plugins jquery com project MediaQueries但我无法下载这个库 我建议不要使用 javascript 来模拟媒体查询 设置
  • 如何使用 django 将进程置于后台?

    我尝试了 os system os spwanl 等 但效果不佳 我需要从 django 应用程序执行一些后台进程 尝试使用celery 它最初就是为此目的而创建的 并且还支持调度任务
  • JS:导出 Array.prototype

    如果我想向 JavaScript 添加原型Array 有没有办法导出它 以便我可以将所有原型方法放入一个文件中 例如modules prototypes js 可不可能是export Array 或者我会在设置原型之前添加导出吗 如果你的代
  • iOS - 本地通知 - 自定义振动或振动时间更长

    我正在尝试构建一个像闹钟一样工作的 iPhone 应用程序 我正在使用 UILocalNotification Problem 我希望手机振动时间更长一些 但目前它仅振动一次 替代方法 是否可以使用自定义振动模式 http www pcwo
  • 在 bash 中将带有分号 (';') 的值赋给变量

    我试图用 sed 在 unix shell bash 上的字符串中转义 分号 当我直接执行而不将值分配给变量时它会起作用 那是 echo hello sed s 1 g hello 但是 当将上述命令分配给变量时 它似乎不起作用 resul
  • 将插入符号/光标位置设置为字符串值 WPF 文本框的末尾

    我尝试将插入符 光标位置设置为end当我第一次打开窗口时 WPF 文本框中的字符串值 当窗口打开时 我使用 FocusManager 将焦点设置在文本框上 似乎没什么作用 有任何想法吗 请注意 我使用的是 MVVM 模式 并且我的代码中仅包
  • Struts2 中的 NoSuchMethodException

    我有出生日期的文本字段 当用户输入无效日期 例如字符串 时 错误消息成功显示为 fielderror 但在我的控制台中 我收到此错误 java lang NoSuchMethodException Profile setBirthDate
  • jquery ajax 单击时调用,仅有效一次

    我有这个简单的 jquery 代码 单击时 它会获取标签的 URL 加载当前内容旁边的页面 滑动它并删除旧内容 页面的状态与以前完全相同 相同的元素没有额外的类或样式 问题是下一个 ajax 调用不起作用 也许我需要 unbind 一些东西