javascript - preventDefault 在锚标记单击时停止刷新
问题描述
我有下面的代码行,它只是在父页面上放置一个链接:
<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+'¶m3='+ 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 操作打开一个弹出窗口,它工作得很好。唯一的问题是单击父页面上的链接时,它会刷新父页面。我不希望它刷新,我尝试添加return false
链接和 Javascriptvoid()
函数,我还尝试通过在此链接上为单击事件添加事件侦听器,如下所示:
$(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 的任何事件绑定,并将所有特征/绑定集中在一个地方。然后我指出一种方法来找到你的特征的强制性参数。
推荐阅读
- spring - Swagger Codegen Java RequestBody 名称
- python - 使用 Python / Scipy Trapz 积分以查找曲线下的区域(计算电池 amp.hrs)
- jquery - 为什么我的 jQuery 函数不能隐藏/显示元素?
- templates - Ansible AnsibleUndefinedVariable: 'XX 未定义
- java - 在单个 Spring JDBC 更新中从多个查询中检索生成的密钥
- typescript - 在 typescript 库中导出扩展的 express 请求
- php - 有没有办法从 Symfony 中的特定表加载角色?
- python - 在 Python3 上使用 beautifulsoup4 从多个 URL 中提取 img src 时遇到问题
- android - Android R8 不保留 FragmentContainerView 中使用的片段
- vb.net - opendialog 显示一个文件并使用复选框 vb.net 保存它