繁体   English   中英

preventDefault 在锚点标签点击时停止刷新

[英]preventDefault to stop refresh on anchor tag click

我有以下代码行,它只是在父页面上放置一个链接:

<a href="javascript:void(0)" id="createNewsLink" class="short" onclick="javascript:func1(); func2(param1,param2,param3);return false;"><caps:msg textId="createNews"/></a>

上面链接的Onclick 2 函数被调用:

###func1():

var timestamp;

function func1() {
    timestamp = +new Date();
    return false;
}

###func2():

function  func2(param1,param2,param3,param4){ 
    var win;
    var location = window.location.href; // location A
    var encodeStringVar = encodeString(param3);
    win = window.open(param1+'/struts1.action?param2='+param2+'&param3='+ escape(encodeStringVar) +'#'+param4,target='t1','toolbar=no,scrollbars=yes,menubar=no,location=no,width=990,height=630, top=100, left=100');
    window.location.href = location; // location A
    return win;
}

单击父页面上的链接时,会通过调用 struts 操作打开一个弹出窗口,并且效果很好。 唯一的问题是当点击父页面上的链接时,它会刷新父页面。 我不希望它刷新,我尝试在链接和 Javascript void()函数中添加return false ,我还尝试在此链接上添加一个单击事件的事件侦听器,如下所示:

$(document).ready(function() {
    $("#createNewsLink").click(function(event) {
        //return false;
        event.preventDefault();
    })
})

及以下:

$(document).ready(function() {
    document.getElementById("createNewsLink").addEventListener("click", function(event) {
        event.preventDefault();
    });
})

但是这些都没有成功,有人可以指出我的代码中的错误吗?

你可以考虑试试:

 (function(){ var linkElement = document.querySelector('#createNewsLink'); linkElement.addEventListener('click',function(e) { var param1 = e.target.getAttribute('attr-param1'); var param2 = e.target.getAttribute('attr-param2'); console.log(param1,param2); // Do what ever you want here. e.preventDefault(); }); })();
 <a href="http://google.com" id="createNewsLink" class="short" attr-param1="foo" attr-param2="bar">Click me</a>

在这里,我避免了来自 html 的任何事件绑定,并将所有特征/绑定集中在一个地方。 然后我指出一种方法来为您的特质找回强制性参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM