Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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_Triggers - Fatal编程技术网

Javascript jQuery脚本在以编程方式(不是由用户)更改选择选项时不起作用

Javascript jQuery脚本在以编程方式(不是由用户)更改选择选项时不起作用,javascript,jquery,triggers,Javascript,Jquery,Triggers,我的jQuery脚本运行良好: $("select").change(function () { var finalPrice = 0; $("select option:selected").each(function () { if ($.cookie('descuentoGen') != null){ finalPrice = Math.floor(precios[$(thi

我的jQuery脚本运行良好:

$("select").change(function () {
          var finalPrice = 0;
          $("select option:selected").each(function () {
                if ($.cookie('descuentoGen') != null){  
                    finalPrice = Math.floor(precios[$(this).index()]*$.cookie('descuentoGen'));
                } else{
                    finalPrice = precios[$(this).index()];
                }
              });
          $("#precioFinal").text(finalPrice);
        })
        .trigger('change');
正如您所看到的,当用户在select中选择另一个选项时,它只是执行一些操作

现在,在另一个脚本中,我称之为:

document.getElementById('selectFoods').selectedIndex = t;
这是应该的,因为它实际上更改了所选选项,问题是,为什么我以这种方式更改所选选项,初始jQuery脚本中的操作不会执行

有没有办法解决这个问题,或者我必须在另一个脚本中复制jQuery脚本的行为?

试试这个

$('#selectFoods').prop('selectedIndex', t).change();
使用selectedIndex不会触发更改事件。你必须自己触发它。

试试这个

$('#selectFoods').prop('selectedIndex', t).change();

使用selectedIndex不会触发更改事件。您必须自己触发它。

我认为您必须自己触发事件,因为我知道没有侦听器跟踪每个选择框的selectedIndex,因此当selectedIndex更改时,js引擎可以触发事件。也就是说,更改selectedIndex的是默认的更改行为,而不是相反

我认为您必须自己触发事件,因为我知道没有侦听器跟踪每个选择框的selectedIndex,因此当selectedIndex更改时,js引擎可以触发事件。也就是说,更改selectedIndex的是默认的更改行为,而不是相反

非常感谢你!10分钟一过,我就接受答案。。你能简单地解释一下我的选择是否可行,为什么我的选择不可行。谢谢非常感谢你!10分钟一过,我就接受答案。。你能简单地解释一下我的选择是否可行,为什么我的选择不可行。谢谢