代码之家  ›  专栏  ›  技术社区  ›  Hafez Divandari

Safari不会按时启动Select元素上的Click事件

  •  3
  • Hafez Divandari  · 技术社区  · 8 年前

    chrome和firefox在打开选项菜单的同时在select元素上触发click事件,但是safari在选项菜单关闭之前不会触发事件。 我需要点击事件立即启动点击,有什么解决方法吗?

    我在Safari 9和10上进行了测试。 这是小提琴: https://jsfiddle.net/hafez/nm3170v5/

    <div id="app">
       <select @click="runTest($event)" v-model="selectedValue">
           <option value>select to check your browser</option>
           <option value="1">first</option>
           <option value="2">second</option>
       </select>
    </div>
    
    new Vue({
      el: "#app",
      data: {
            selectedValue: ''
      },
      methods: {
        runTest(event) {
          if(event.target.value) {
            alert("It's too late to show an alert! I said on-clik stupid browser!");
          } else {
            alert("Alert on time! Good job dear browser!");
          }
          this.selectedValue = '';
        }
      }
    })
    

    注释 :根据我的实际代码,我必须 stopPropagation preventDefault 通过使用 click.stop.prevent 所以这个解应该满足这个条件。

    1 回复  |  直到 8 年前
        1
  •  3
  •   FK82    8 年前

    尝试 mousedown 而不是 click ( Fiddle )


    笔记 :

    点击 Afaik将在释放鼠标按钮时触发事件,而 鼠标按下 按下鼠标按钮时将触发事件。这可能是延迟处理程序执行的原因。