Javascript 如何将参数传递给由事件处理程序触发的函数?
问题是我有一个事件监听器和一个函数:Javascript 如何将参数传递给由事件处理程序触发的函数?,javascript,jquery,Javascript,Jquery,问题是我有一个事件监听器和一个函数: $(document).ready(function() { function insert_hint(element, string){ console.log(string); } $('.test').on('click', insert_hint('123', '123')); }); 但如果我这样做,它会立即触发我的函数,而不是等待类为“test”的元素被单击 如何防止这种情况发生?向事件触发的函数传
$(document).ready(function() {
function insert_hint(element, string){
console.log(string);
}
$('.test').on('click', insert_hint('123', '123'));
});
但如果我这样做,它会立即触发我的函数,而不是等待类为“test”的元素被单击
如何防止这种情况发生?向事件触发的函数传递参数的正确方法是什么
我有一种感觉,这是非常明显和简单的事情,但我只是错过了它。你可以简单地做到:
$('.test').on('click', function() {
insert_hint('123', '123');
});
在click回调函数中传递函数
此处的更多详细信息:您需要将函数包装到另一个函数中,该函数将指定其参数
$(document).ready(function() {
function insert_hint(element, string){
console.log(string);
}
$('.test').on('click', function() {
insert_hint('123', '123');
});
});
除了将其包装成@palash和@ralh等匿名函数外,还可以使用 bind()方法创建一个新函数,在调用该函数时,将其this关键字设置为提供的值,并在调用新函数时在任何提供的参数之前提供给定的参数序列
JSFIDDLE:将其包装在另一个函数中。你为什么要花时间写这个问题,而不只是在谷歌上键入标题,那里已经有成千上万的答案了-对一个简单到根本不应该被问到的问题的答案(没有使用正确的术语)进行投票。。。这是怎么回事!:)
$(document).ready(function() {
function insert_hint(element, string, evt){
console.log(element, string, evt); // "hello", "world", the click event
}
$('.test').on('click', insert_hint.bind(this, 'hello', 'world'));
});