【问题标题】:Jquery Dynamic URLs not working?Jquery 动态 URL 不起作用?
【发布时间】:2014-07-01 06:40:54
【问题描述】:

所以我在互联网上四处搜索,并没有真正理解它是如何工作的。我的页面上有一个 div 元素,可以为我的游戏动态加载排行榜。这个想法是,当你点击一个玩家的名字时,div 会填充他们的个人数据,替换旧的。这意味着页面不需要刷新。 url 类永远不会改变,id 总是会根据用户的名字而改变。

在代码中,链接是这样生成的:

<a class="ulink" id="'.$user.'" href="#">'.$user.'</a>

我的 jquery 是这样的:

$(".ulink").on('click', function (event) {
        alert("hi");
        event.preventDefault();
});

当我点击玩家的名字时它加载正常但是当我点击让我们说一个不同的技能再次加载主表的 div 并尝试再次点击玩家的名字时它停止工作???

我确实花了几天时间在我的排行榜脚本的这一部分上,这是一个彻头彻尾的痛苦。

我如何做到这一点,以便在重新加载 div 时链接将继续发送警报消息?在我替换 DIV 元素后,它们不再起作用。我在谷歌上查了一下,但没有找到解决方案。

提前致谢。

【问题讨论】:

标签: jquery html url dynamic href


【解决方案1】:

由于您是动态创建元素,请使用以下代码:

   $("body").on("click", ".ulink", function (event) {
            alert("hi");
            event.preventDefault();
     });

【讨论】:

  • 绝对精彩!这很完美。只是我的代码的基础,但是我如何使用它来获取我点击的内容的 ID?用户名正在发布到另一个页面,我已经知道该怎么做。我只是需要知道如何获取 url id xd
  • 在回调函数中,this.id会给你id,在jQuery的方式$(this).attr("id")
  • 啊,非常感谢!你只是在 10 分钟内回答了我 3 天想不通的问题。多爱
【解决方案2】:

$(".ulink").on 只对当前存在的.ulinks 做一些事情。如果您稍后创建新的,他们将不会附加该事件。再次调用您的on 代码或使用delegate

【讨论】:

    【解决方案3】:

    如果您将事件监听器绑定到文档并使用 jQuery on(),那么该事件将被添加到 新的和现有的 元素中。试试这个:

    $(document).on('click', '.ulink', function (event) {
            alert("hi");
            event.preventDefault();
    });
    

    欲了解更多信息,请查看 jQuery 文档:http://api.jquery.com/on/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-26
      • 1970-01-01
      • 2013-08-02
      • 2013-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-17
      相关资源
      最近更新 更多