有人可以解释粘贴代码有什么问题。它会在悬停时显示警报,但不会像我预期的那样执行点击事件,并且点击对<a>
标记或<select>
标记无效。我的目的是通过触发点击事件来扩展悬停上的select
元素
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
</head>
<body>
<a id="linkElement" href="www.google.co.uk">click</a>
<select name="cars" id="selectElemet">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>
<script>
$(document).ready(function () {
$("#selectElement").mouseover(function () {
$("#selectElement").trigger("click");
});
$("#linkElement").mouseover(function () {
alert('here');
$("#linkElement").trigger("click");
});
});
</script>
</body>
</html>
答案 0 :(得分:2)
.trigger("click")
实际上不会单击该元素,它只会触发随元素附加的点击处理程序。由于你没有附加任何没有被触发。
您可以使用原生.click()
$("#selectElement").get(0).click(); //get(0) returns reference to DOM element
答案 1 :(得分:2)
您的ID属性中存在拼写错误。将'selectElemet'替换为'selectElement'。希望有所帮助。
答案 2 :(得分:2)
触发器(&#39;点击&#39;)只是在您设置了“点击”的地方发生了带有元素的事件,而非物理的点击&#39;。例如,触发(&#39;点击&#39;)甚至不会触发&#39;&#39;标签如果附加没有&#39;点击&#39;
答案 3 :(得分:1)
试试这个,
$('#selectElement').on('change', function() {
});
答案 4 :(得分:1)
将click事件处理程序添加到元素中。然后它才会起作用。
检查以下代码段。
尝试将鼠标放在链接上,它将触发click事件处理程序。
$(document).ready(function() {
$("#linkElement").mouseover(function() {
$("#linkElement").trigger("click");
});
$("#linkElement").click(function(){
window.location.href=$("#linkElement").attr("href");
});
});
&#13;
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
</head>
<body>
<a id="linkElement" href="www.google.co.uk">click</a>
<select name="cars" id="selectElemet">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>
</body>
</html>
&#13;