Javascript JQuery事件侦听器通过名称和参数调用函数

Javascript JQuery事件侦听器通过名称和参数调用函数,javascript,jquery,Javascript,Jquery,我见过其他类似的问题,但我似乎找不到我想要的答案 有没有办法将参数传递到JQuery事件侦听器中的命名函数中 例如,我知道我可以做到这一点 $('#myelement').on("change", function(){ var value = $(this).val(); myFunction(value); }); 但是有没有办法将函数名传递给事件侦听器呢 像这样的 $('#myelement').on("change", myFunction($(this).val()))

我见过其他类似的问题,但我似乎找不到我想要的答案

有没有办法将参数传递到JQuery事件侦听器中的命名函数中

例如,我知道我可以做到这一点

$('#myelement').on("change", function(){
  var value = $(this).val();   
  myFunction(value);
});
但是有没有办法将函数名传递给事件侦听器呢

像这样的

$('#myelement').on("change", myFunction($(this).val()));

老实说,我认为这是直截了当的,但我似乎找不到一种方法来实现这一点。

假设我理解您的要求,我使用的一种解决方法是引用数组中的函数,如下所示

函数列表=[函数1,函数2];
函数_1(){
警报(“功能1正在运行”);
}
函数_2(){
console.dir(“功能2正在运行”);
}
函数运行函数(函数索引){
返回函数的列表[函数索引]();
}
$(“#功能_选择”)。在(“更改”,功能(){
run_函数(此.value);
});

请选择一个函数
职能1
职能2
您可以使用jQuery“”方法,然后调用
单击事件侦听器,最后但并非最不重要的是调用您创建的函数

$('button')。在('click',clicked');
函数单击(){
var val=$('#one').val();
$('.response').html('值为'+val+'

'); }

点击我

您可以使用jQuery方法将参数传递给处理函数

它的格式是
。on(events[,selector][,data],handler)
,其中
data
是您需要传递的任何对象。稍后可以通过处理程序中的
event.data
属性访问它

检查这个例子。请注意,如果只想访问
$(this).val()
,则不需要任何参数:
myFunction
已绑定到目标元素,因此可以在其中使用
$(this).val()

$(“#i”).on(“更改”,null,“我的参数”,myFunction);
函数myFunction(事件){
console.log(“参数:+event.data”);
log(“$(this.val()=”+$(this.val());
}


如果它是一个静态值,请输入一些内容并按Enter键,可以,但由于值发生了变化,所以实际上并不是这样。不能以这种方式将
$(this)
用作参数。它不引用您的事件(引用更高的名称空间)。您可以传递函数名,但不能像那样传递值,但我看不出它的必要性,因为您只需在
myFunction
中获取值,为什么这是个问题?只要用正确的方法去做。这就是工作的方式。
.on
的第二个参数应该是一个函数。按照您尝试的方式,参数将是函数的返回值。函数将被调用一次,而不是每次触发
'change'
事件时。如果您不喜欢语法,可以执行
var-handleChange=function(){var-value=$(this.val();myFunction(value);}$(#myelement')。on(“change”,handleChange)。我不认为OP在文章中说的是他们真正的意思。太棒了,正是我想要的!Thanks@S_R我很乐意帮忙!