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

Function should execute on click, but does automatically at the loading

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

在这里:我有一个函数声明(希望如此):

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

然后我想在点击某些东西时调用这个函数,像这样:

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

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

Function expressions will execute automatically if the expression is followed by ().<

事实是,当我没有使用任何参数时,它只在点击时起作用:

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 允许您将回调定义为 anonymous functions 并在其中触发您的函数调用,如下所示:

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

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