需要jQuery来触发所有下拉菜单而不是多次触发

时间:2015-06-16 19:59:16

标签: jquery

无论哪个下拉列表发生变化,我都试图让jQuery函数触发。页面上有几个下拉菜单。我试过了

 $(document).ready(function () {
       $('select').each(function () {
            CalcOral();
       });
 });

我还没想到的几个问题:

  1. 在负载上,每次下拉列表都会触发CalcOral。我只需要点燃一次。
  2. 当我更改下拉菜单时,CalcOral不会触发。没有错误,但它没有运行。
  3. 由于 香农

5 个答案:

答案 0 :(得分:1)

尝试jQuery .change()

$('select').change(function(){ CalcOral();});

答案 1 :(得分:1)

  
      
  1. 在负载上,每次下拉列表都会触发CalcOral。我只需要点燃一次。
  2.   

所以只需在准备好的功能中调用一次

  

当我更改下拉菜单时,CalcOral不会触发。没有   错误,但它没有运行。

在ready函数中绑定onchange事件

$(document).ready(function () {
        CalcOral(); // prob1 solved

      $('select').change(function () {
            CalcOral(); // prob 2 solved
       });   
 });

答案 2 :(得分:0)

在加载时运行该函数,并在更改时再次运行:

function CalcOral() {
    // do stuff;
}

jQuery(document).ready(function ($) {
    $('select').change(function () {
        CalcOral();
    });

    CalcOral();
});

<强> Demo

答案 3 :(得分:0)

你让它变得太复杂了,这里有一条很短的路线,可以满足您的需求:

$('select').change(CalcOral);

这是'on'上更通用的jQuery绑定功能的快捷方式:

$('select').on("change",CalcOral);

答案 4 :(得分:0)

由于你的.each循环,每次下载都会触发。它没有触发更改因为你没有绑定它(并且可能你没有为选择添加onchange函数)。

我推荐两件事: 1.直接从你的onload运行CalcOral()。

$(document).ready(function () {
      CalcOral();

});
  1. 将onchange函数调用添加到html或jquery绑定事件。对于这种情况,.change会起作用,但jQuery通常会推荐使用稍微多功能的.on函数。两者都能起作用,取决于你。

    $('select').change(function(){
        CalcOral();
    )};
    
  2. 每次更改任何选项时,绑定事件都会运行。