我有一个链接列表,点击后应该打开一个带有一些信息的模态窗口。我正在使用e.preventDefault();
来阻止浏览器的默认操作,然后添加我自己的自定义代码以在模式中加载我自己的数据。内容加载得很好,但几秒钟后,我点击链接的整个网站都被加载到模态中。
这是我的代码:
$('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。尝试点击第一个标题,您将看到问题。之后,重新加载网页,然后单击第六个链接。现在,关闭模态并再次单击第一个链接。这一切都应该完美。
更新:语法错误不存在。我错误地在问题中提出了这个问题。 :)
答案 0 :(得分:0)
此代码的语法错误(删除})
):
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