Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用';或';jQuery方法中的条件?_Javascript_Jquery_Function - Fatal编程技术网

Javascript 如何使用';或';jQuery方法中的条件?

Javascript 如何使用';或';jQuery方法中的条件?,javascript,jquery,function,Javascript,Jquery,Function,假设我有以下代码 代码01 $("#abc").click(function(){ //My Code }); 代码02 $("#def").change(function(){ //My Code }); 我必须运行相同的代码#abc单击或#def更改。因此,目前我在两个地方浪费时间编写相同的代码 我知道可以重用相同的代码,创建一个公共函数并调用它。 有什么jQuery方法可以解决我的问题吗 我的意思是像下面这样的东西 (`#abc` click or `#def` cha

假设我有以下代码

代码01

$("#abc").click(function(){
    //My Code
});
代码02

$("#def").change(function(){
    //My Code
});
我必须运行相同的代码
#abc
单击或
#def
更改。因此,目前我在两个地方浪费时间编写相同的代码

我知道可以重用相同的代码,创建一个公共函数并调用它。

有什么jQuery方法可以解决我的问题吗

我的意思是像下面这样的东西

(`#abc` click or `#def` change){
 //Do this
}

在将函数设置为不同事件时,可以预定义函数并将其用作参数。大概是这样的:

 var someEvent = function() {
   // code here
 });


 $('#abc').on('click', someEvent);
 $('#def').on('change', someEvent);

你所能做的就是

var todo = function() {
   //something
}

$('#abc').click(todo);
$('#def').change(todo);
这当然是您已经想到的(我知道可以重用相同的代码,创建一个公共函数并调用它)

  • 从事件处理程序调用相同的函数
  • $(“#abc”).change(samefunction);
    $(“#def”)。单击(samefunction);
    函数samefunction(e){
    警报(如target.id)
    }

    不能使用同一jQuery选择器为两个不同的选择注册两个不同的事件。这时函数就派上了用场:

    function go() {
    }
    
    $('#abc').click(go);
    $('#def').change(go);
    

    只有当您的事件注册对于选择器是通用的时,才能执行此操作。您可以执行以下操作:

    $("#abc  , #def ").on("click change", functionname);
    

    这会导致触发不需要的事件。您所说的“事件注册对于您的选择器来说是常见的”是什么意思?@question-if click和change对于abc和def选择器来说是常见的@ꜱᴜʀᴇꜱʜᴀᴛᴛᴀ - 这适用于常见事件处理程序。这将产生意外结果。如果有人单击
    #def
    或更改
    #abc
    ,会发生什么情况?您不需要两次编写相同的代码。在这种情况下使用函数。您可以按照@Milind的答案将所有内容包装在一个函数中并使用它。这是最好的解决办法。祝你好运。事实上,我是一个否决这个答案的人,因为我希望有一个答案。。。。。。