我试图阻止我网站上的特定 onClick 功能。我已经编写了以下内容,但它似乎并没有阻止该功能。有什么想法吗?
如果我删除 ('xx=d&') 它就会起作用,但我只希望它在存在时阻止该函数。
JS
function AJFK_AjaxUpdateForm('xx=d&') (event){
event.preventDefault();
}
最佳答案
你的问题是你的构造函数..
function AJFK_AjaxUpdateForm('xx=d&') (event){
你在那里有一个硬字符串,你应该在其中包含你的参数名称..并且你有两个..括号,在你的情况下是无效的...除非该函数返回一个函数声明,我假设你的示例则不然。
您的构造函数应如下所示:
function AJFK_AjaxUpdateForm(event){
如果您打开“开发人员工具”>“控制台”,您将开始看到注释部分中指出的 JavaScript 错误。
<小时/>根据您在评论中提出的问题;您将进行简单的字符串比较:
var block = 'xx=d&';
function AJFK_AjaxUpdateForm(event){
if(block == 'xx=d&'){
event.preventDefault();
}
}
如果您想将“block”变量作为构造函数的一部分传递,您需要添加另一个变量:
function AJFK_AjaxUpdateForm(event, block){
如果您使用内联处理程序来执行该函数;您必须更新它而不是对字符串进行硬编码:
<a href="/Home" onclick="AJFK_AjaxUpdateForm(event, 'xx=d&')">Test the Method</a>
回到双括号,如果你想知道......实际上是一个有效的语法,正如我上面提到的,如果你的函数返回一个函数声明。
在此示例中,使用双括号是完全有效的。
var f = function(){
return function(){
console.log("123");
}
}
f()();
但这可能超出了您想要做的范围,而且这只是需要学习的东西;)
关于javascript - 阻止 onClick 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51785045/