单击事件选项不在safari中工作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单击事件选项不在safari中工作相关的知识,希望对你有一定的参考价值。
我在一个非常简单的代码的帮助下重新创建我的问题(见下文):
<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>
以上是关于单击事件选项不在safari中工作的主要内容,如果未能解决你的问题,请参考以下文章
如何让“Pointermove”委托在父母/孩子的Safari iOS中工作?
Jquery 表单提交不能在 chrome 中工作,但在 Firefox 中工作