【问题标题】:jQuery preventDefault() not working on first clickjQuery preventDefault() 在第一次点击时不起作用
【发布时间】:2012-03-09 20:59:30
【问题描述】:

我有以下代码

$("#logoutLink").click(function(event) {

    event.preventDefault();

    var dataString = "action=confirm";

    $.ajax({
        type: "POST",
        url: "requests.php",
        data: dataString,
        success: function(msg) {
            if (msg == "success") {
               alert('logged out');
            } else {
                showNotification("error", "" + msg + "");
            }
        },
        error: function() {
            showNotification("error", "Could not log you out at this time, try again.");
        }
    });

    return false;
});

以及带有 id="logoutLink" 的链接

preventDefault第一次不起作用,因为登录系统不刷新链接并添加带有链接的html内容,其中是注销链接,因此该项目在html中不存在,我知道这是问题,但我的问题是如何让它知道 html 内容已添加链接 id logoutLink 没有页面刷新?

【问题讨论】:

  • 很困惑。请让朋友阅读您的要求。请改写问题。我有你想要的NFI
  • 哈哈,好吧,事情就是这样,我有一个登录系统,它使用 jquery 并在不刷新页面的情况下登录用户,登录后,有一个名为 options 的 div 和 jquery 添加链接该 div 使用 .html() 方法,因此原始 html,当您查看页面的源代码时没有,然后我有 php 来检查用户是否登录,并在那里广告这些链接(在这种情况下它添加直接到没有jquery的html)。注销是其中一个链接,当第一个 jquery 登录用户并将链接添加到该 div 时,注销链接不适用于 .click() 方法
  • 我的问题是如何让它知道有一个注销链接,即使页面没有刷新,并且链接只通过 jquery 添加而不是 html

标签: jquery click preventdefault


【解决方案1】:

您的问题有点令人困惑,但请尝试使用live() 绑定您的事件处理程序:

$("#logoutLink").live('click', function(event) {
    // ...

更多信息请参见http://api.jquery.com/live/

【讨论】:

    【解决方案2】:

    您的问题不清楚,但如果您是动态添加链接,您应该使用.live('click', ...) 或新的jQuery 1.7 .on()

    【讨论】:

      【解决方案3】:

      您需要在登录系统添加链接后添加点击处理程序$("#logoutLink").click(function(event) {},所以我会执行以下操作

      function addHandlers(){
          $("#logoutLink").click(function(event) {
               event.preventDefault();
               // anything else
          }
      }
      
      $(document).ready(function(){
          addHandlers();
      });
      

      然后在添加链接时也调用addHandlers();

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多