【发布时间】:2016-09-19 01:21:43
【问题描述】:
我遇到了单击#target3 不会触发事件处理程序的问题。我认为问题是事件没有传播到<select> 元素的<option>?令人烦恼的是这个 sn-p 工作; IE8及以上,还有火狐,但在Chrome中不行?
var target = 1;
$("#target"+target).bind("click.clickEvent",function(){TargetClicked(this)});
function TargetClicked(ele)
{
if($(ele).prop("id") == ("target" + target))
{
$("body").append("You clicked >> #" + $(ele).prop("id") + "<br>");
$(ele).unbind(".clickEvent");
target++;
$("#target"+target).bind("click.clickEvent",function(){TargetClicked(this)});
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="target1">Click here first</p>
<p>
<select id="target2">
<option>----</option>
<option id="target3">target 3</option>
</select>
</p>
这是来自一个非常大的项目,所以我想尝试为这个问题找到一个javascript / JQuery 修复或解决方法,因为编辑HTML 是不可行的。
【问题讨论】:
-
您可以将事件处理程序绑定到
<select>标签的change事件,而不是click事件。然后在您的回调函数中,您可以评估是否选择了具有select3的id属性的选项,并采取相应措施。
标签: javascript jquery html google-chrome