我想使用tag-helper显示包含加载的<div>
。我希望在<a>
标记的任何位置显示加载,href='#'
除外。 (我没有任何ajax调用,所以我会在点击链接后看到一个新的渲染页面)
$('a:Not([class="NeedsConfirmation"])').click(function () {
var currentURL = window.location.href;
var element = $(this);
if ((element.attr("href") != "#") && (element.attr("href") != currentURL))
{
showLoading(element);
}
});
现在,我想添加额外的异常:当前,如果用户按 ctrl 然后单击该链接,将显示新页面,但预览页面将显示加载。
在这种情况下,如何放弃调用showLoading(element);
? (右键单击并在“新选项卡或窗口中打开”没有问题)
答案 0 :(得分:1)
您可以使用传递到.click
的事件对象。它有一个名为ctrlKey
的属性。检查它,然后做你想要的东西。
$('a:not([class="NeedsConfirmation"])').click(function (e) {
e.preventDefault();
// Check if ctrl was pressed...
if(e.ctrlKey) {
// Ctrl was pressed during click
alert('ctrl click');
// Do something else.
}
else {
// Ctrl was not pressed during click
alert('not ctrl click');
var currentURL = window.location.href;
var element = $(this);
if ((element.attr("href") != "#") && (element.attr("href") != currentURL))
{
showLoading(element);
}
}
});
showLoading = function(element){
element.text('loading...');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#">click me!</a>
<a href="www.stackoverflow.com">click me with link!</a>