【问题标题】:Prevent a link from loading the clicked link in the modal window阻止链接在模态窗口中加载单击的链接
【发布时间】:2017-01-15 12:28:53
【问题描述】:

我有一个链接列表,单击该列表时应打开一个包含一些信息的模式窗口。我正在使用e.preventDefault(); 来阻止浏览器的默认操作,然后添加我自己的自定义代码以在模态中加载我自己的数据。内容加载得很好,但几秒钟后,我点击其链接的整个网站都会加载到模态中。

  1. 只有来自特定网站的链接才会发生这种情况。
  2. 该网站的链接应该是我点击的第一个链接。首先点击其他链接可以解决此问题。

这是我的代码:

$('a.modal-link').on('click', openModal);

function openModal(evt) {
  evt.preventDefault();
  var link = $(this).attr("href");
  var text = $(this).text();
  safeModal(link, text);
};

function safeModal(linkUrl, linkText) {
  var link = linkUrl;
  var page = window.location.href.split('?')[0];
  var text = linkText;
  var ajaxURL = "http://example.com/script.php";

  $.ajax({
    type: "POST"
    , url: ajaxURL
    , data: {
        link: link
        , page: page
    }
    , success: function (markup) {
        $(".feed-modal .modal-body").html(markup);
    }
  })
};

我还可以提供指向实际网站的链接,以便您自己查看问题(我可能没有正确解释)。

更新:我正在添加the link。尝试单击第一个标题,您将看到问题。之后,重新加载网页,然后单击第六个链接。现在,关闭模式并再次单击第一个链接。这次应该一切正常。

更新:语法错误不存在。我错误地在问题中提出了它。 :)

【问题讨论】:

  • 首先,尝试摆脱js错误。未捕获的 ReferenceError:未定义 swfobject。它可能会停止传播你的脚本
  • @RafałŁyczkowski 该错误是由于另一个域。它与我的代码无关。

标签: javascript jquery html ajax twitter-bootstrap


【解决方案1】:

此代码有语法错误(删除})):

success: function (markup) {
  $(".feed-modal .modal-body").html(markup);
  }) //delete this
}

整个函数应该是:

function safeModal(linkUrl, linkText) {
  var link = linkUrl;
  var page = window.location.href.split('?')[0];
  var text = linkText;
  var ajaxURL = "http://example.com/script.php";

  $.ajax({
    type: "POST"
    , url: ajaxURL
    , data: {
        link: link
        , page: page
    }
    , success: function (markup) {
        $(".feed-modal .modal-body").html(markup);
        //}) without this
    }
  })
};

工作DEMO

【讨论】:

    猜你喜欢
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    相关资源
    最近更新 更多