函数应在单击时执行,但在加载时自动执行



一个简单的快速问题,尽管我在stackoverflow上经历了很多问题,但我根本无法找出答案。我是新手,感谢您的耐心等待!

事情是这样的:我有一个声明(希望(这样的函数:

function test(parameter) {
$(parameter).trigger("click");
};

然后我想在点击某些内容时调用这个函数,如下所示:

$("#buttonOne").on("click", test("#correctParameter"));

现在,问题是该功能实际上是在页面加载上执行的,然后在单击 #buttonOne 时不起作用。我在w3school上读到,

如果表达式后跟 ((.<,则函数表达式将自动执行

事实是,当我不使用任何参数时,它仅在单击时起作用:

function test() {
$("#correctParameter").trigger("click");
};
$("#buttonOne").on("click", test);

但是我必须使用参数选项,以便我可以在其他时候调用此函数,并且每次都为其提供不同的参数。你能帮我解决这个问题吗?

您应该按如下方式在function中调用test

$("#buttonOne").on("click", function(){
test("#correctParameter")
});

下面是一个示例:

function test(parameter) {
$(parameter).trigger("click");
};
$("#buttonOne").on("click", function(){
test("#correctParameter")
});
$('#correctParameter').on('click', function(){
console.log("correctParameter clicked")
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="button" id="buttonOne">Click</button>
<button type="button" id="correctParameter">Other</button>

Javascript 允许你将回调定义为匿名函数,并在其中触发函数调用,如下所示:

function test(parameter) {
$(parameter).trigger("click");
};
$("#buttonOne").on("click",function() {
test('"#correctParameter"');
});

最新更新