Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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 使用onChange在select元素上触发JS,但如果已经选择了它,也会触发JS吗?_Javascript_Jquery - Fatal编程技术网

Javascript 使用onChange在select元素上触发JS,但如果已经选择了它,也会触发JS吗?

Javascript 使用onChange在select元素上触发JS,但如果已经选择了它,也会触发JS吗?,javascript,jquery,Javascript,Jquery,我写了一个非常基本的网站,涉及到用户使用下拉菜单选择一个选项,它会播放声音时,他们这样做 如果用户每次都想选择不同的选项,但如果他们播放某个选项中的声音,然后想通过再次选择来再次播放该选项,则此操作非常有效。我说再次选择它是因为它已经被选中了,所以单击选择框并选择相同的选项不会是onChange,这不会触发事件 您如何实现它,以便在单击时,无论是否选中它,它都将执行该JS <select onchange="document.getElementById(this.options[this

我写了一个非常基本的网站,涉及到用户使用下拉菜单选择一个选项,它会播放声音时,他们这样做

如果用户每次都想选择不同的选项,但如果他们播放某个选项中的声音,然后想通过再次选择来再次播放该选项,则此操作非常有效。我说再次选择它是因为它已经被选中了,所以单击选择框并选择相同的选项不会是onChange,这不会触发事件

您如何实现它,以便在单击时,无论是否选中它,它都将执行该JS

<select onchange="document.getElementById(this.options[this.selectedIndex].value).play()">
    <option>Select</option>
    <option value="1">Sound one</option>
    <option value="2">Sound two</option>
    <option value="3">Sound three</option>
    <option value="4">Sound four</option>
</select>

我想您也应该绑定click处理程序

带有内联事件绑定的JavaScript

无内联事件绑定的JavaScript

jQuery


注意:如果您使用的是jQuery 1.7或更高版本,那么您应该开始使用而不是

如何将其从onChange更改为onClick?如果我只是简单地改变它,它就不会运行了。
<select 
   onclick="document.getElementById(this.options[this.selectedIndex].value).play()" 
   onchange="document.getElementById(this.options[this.selectedIndex].value).play()">
...
</select>
<select id="myselect">...</select>

<script type="text/javascript">
  function selectClickChange() {
    document.getElementById(this.options[this.selectedIndex].value).play();
  }

  document.getElementById("myselect").onchange = selectClickChange;
  document.getElementById("myselect").onclick = selectClickChange;

</script>
<select id="myselect">...</select>

<script type="text/javascript>
  $(document).ready(function () {
    $('#myselect').bind("change click", function () {
      $('#' + $(this).val())[0].play();
    });
  });
</script>