我在一个非常简单的代码的帮助下重新创建我的问题(见下文):
<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中使用吗?
有一些已知的解决方法:
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>