新手在这里。在网站上尝试了几个不同的例子而没有任何运气。我的情况是,我们在整个DNN站点(Evoq 8.5)上都有以下格式的链接。
<a href="www.site.com" class="external-link">
我正在尝试打开一个模式,表示每次单击与external-link类的链接时,您将离开我们的站点。我也试图在DNN皮肤文件中完成此操作,因此它适用于所有页面。这就是我现在所拥有的。
模态:
<div id="modalExternalLink" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<span class="modal-title">Thank you for visiting our site.</span>
</div>
<div class="modal-body">
<p> You are now leaving our website.</p>
<div class="button-container">
<button type="button" id="btnContinue" class="btn-continue" style="margin-right:10px;">Continue</button>
<button type="button" class="modal-button" data-dismiss="modal">Cancel</button>
</div>
</div>
</div>
</div>
尝试显示模态并将链接的href传递给continue按钮:
$('.external-link').click(function(e) {{
e.preventDefault();
var link = (e.relatedTarget).attr('href');
$("#btnContinue").attr('href', link);
$("#modalExternalLink").modal('show');
});
这在我们的环境中不起作用。它直接指向链接的href URL。我确信还有其他方法可以做到这一点,但我们网站上有数百个链接,我们必须更改外部链接类,并且必须为具有不同链接的许多链接打开此模式网址。
答案 0 :(得分:0)
你的第一行中有一个额外的{
。这会导致错误,jQuery停止执行,永远不会达到e.preventDefault(),因此链接将被打开。因此,您没有看到脚本有错误。
其次,我将代码包装在$(document).ready(function ()
。
$(document).ready(function () {
$('.external-link').click(function (e) {
e.preventDefault();
//rest of the code
});
});
答案 1 :(得分:0)
如果有人偶然发现它,最终弄明白这一点。模态很好,但我的javascript不正确(并且因为我累了而有一些愚蠢的错误)。这是最终正在运行的javascript:
$(document).ready(function(e){
$('.external-link').on('click', function (e) {
e.preventDefault();
console.log($(e.currentTarget).attr('href'));
document.getElementById( "btnContinue" ).setAttribute( "onClick", ( "javascript:window.location.href=\"" + $(e.currentTarget).attr('href') + "\"") );
$('#modalExternalLink').modal('show');
});
});
您显然可以删除控制台日志。主要问题是e.relatedTarget未定义,所以我在那里登录以监控它。从一点点读数来看,Bootstrap 2和它之间存在差异。 3。