单击事件选项不在safari中工作

问题描述 投票:1回答:1

我在一个非常简单的代码的帮助下重新创建我的问题(见下文):

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
    <select class="a">
        <option class="b" value="opt1">opt1</option>
        <option class="b" value="opt2">opt2</option>
        <option class="b" value="opt3">opt3</option>
        <option class="b" value="opt4">opt4</option>
    </select>

    <script>
    $('.b').click(function(){
        alert("hi");
    });

    </script>
</body>

我希望如果我单击一个选项(在下拉列表中),则应显示警告消息。这在Firefox中完美发生,但这在Safari中无效。也有人可以帮我在Safari中使用吗?

jquery safari
1个回答
1
投票

有一些已知的解决方法:

  • cursor:pointer添加到你的<option>s
  • .click(function(){})取代.on('click touchstart', function(){})

另一种选择(和恕我直言,正确的选择)是在父oninput上使用<select>事件:

 $('select').on('input', function(){/* whatever */})

$('select').on('input', function(){
  console.log($(this).val())
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
  <option value=""> Select something </option>
  <option>1</option>
  <option>2</option>
  <option>3</option>
</select>
© www.soinside.com 2019 - 2024. All rights reserved.