尝试在访问指定网址时启动.register-btn a
导航条的点击事件,但不允许浏览器访问该网址。
因此, home.com/memberlogin 会保留在 home.com 上(如果我必须,则会重定向到home.com),以及继续激活点击按钮。
到目前为止,这是我所拥有的,它重定向无处不在,因为它最终花费的时间比点击事件更长,而且加载404,然后等待,然后重定向,然后等待,然后等待,这也非常麻烦点击事件。
如果可能的话,我想要干净利落的东西。
jQuery(document).ready(function() {
jQuery(function() {
switch (window.location.pathname) {
case '/memberlogin':
jQuery('.register-btn a').trigger( "click" );
return False;
}
});
});
可能很可怕地解释了所有道歉 - .register-btn a
已经存在,所以我无法创建这个元素,我只是希望在访问URL /链接时触发它的点击。打开建议,但我假设/ memberlogin就足够了,然后链接就会触发。我不想“访问”该URL,但仅将其用于触发器。
打开一个更简单的方式,告诉我,如果我要求的东西不起作用,只是觉得必须有办法。
答案 0 :(得分:2)
您是否尝试过e.preventDefault()?
<a href="stackoverflow.com" class="dontGo"> click </a>
和jQuery:
$('.dontGo').on('click',function(e){
e.preventDefault();
//do stuff
})
小提琴:https://jsfiddle.net/b9x7x4m6/
docs:http://www.w3schools.com/jquery/event_preventdefault.asp
答案 1 :(得分:0)
只需创建一个功能
function theAction(){
return false;
}
然后您的链接将
<a href="/memberlogin" onClick="theAction()">page name </a>
答案 2 :(得分:0)
完整的JavaScript解决方案(根据要求更新了代码段):
window.onload = function () {
[].slice.call(document.querySelectorAll('.dontGo')).forEach(function(element, index) {
element.addEventListener('click', function(e) {
e.preventDefault();
alert(e.target.textContent);
}, false);
});
// in order to target a specific URL you may write code like in reported,
// assuming the result is only one element,
// otherwise you need to use the previous [].slice.call(documen.....:
document.querySelectorAll('.dontGo[href="linkedin.com"]')[0].addEventListener('click', function(e) {
e.preventDefault();
alert('Linkedin anchor: ' + e.target.textContent);
}, false);
};
<a href="stackoverflow.com" class="dontGo"> stackoverflow </a><br/>
<a href="google.com" class="dontGo"> google </a><br/>
<a href="linkedin.com" class="dontGo"> linkedin </a><br/>
<a href="twitter.com" class="dontGo"> twitter </a><br/>
querySelector允许您以多种不同方式选择元素: 如果您需要选择具有特定href值的锚点,您可以写:
document.querySelectorAll('.dontGo[href="linkedin.com"]')
请记住,querySelectorAll的结果始终是NodeList数组。您可以测试此类数组的长度,以便仅获取第二个元素(如果存在),例如:
var nodEles = document.querySelectorAll('.dontGo[href="linkedin.com"]');
if (nodEles.length > 1) {
nodEles[1]......
}
或者您可以使用以下格式:
[].slice.call(...).forEach(....
将NodeList转换为普通数组,然后为每个元素应用事件侦听器。
是的,您可以在anchor标记的href属性前加上哈希(#),以避免页面重定向。但是,在这种情况下,哈希标记用于跳转到另一个页面部分,这将改变您的网址。