jQuery:在选择框中快速选择整个optgroup的简单方法
我使用的jQuery函数与此线程中的函数类似: 但是,当我现在单击一个jQuery:在选择框中快速选择整个optgroup的简单方法,jquery,html,optgroup,Jquery,Html,Optgroup,我使用的jQuery函数与此线程中的函数类似: 但是,当我现在单击一个时,它会选择整个optgroup,因为optgroup包含option元素。 我使用以下代码段: $("optgroup").click(function(e) { $(this).children().attr('selected','selected'); }); 我的HTML如下所示: <optgroup label="Abc"> <option value="8" >Ab&l
时,它会选择整个optgroup,因为optgroup包含option元素。
我使用以下代码段:
$("optgroup").click(function(e) {
$(this).children().attr('selected','selected');
});
我的HTML如下所示:
<optgroup label="Abc">
<option value="8" >Ab</option>
<option value="7" >C</option></optgroup>
Ab
C
因此,单击
C
上的IG也会选择Ab
。也许我遗漏了一些明显的东西…我可能错了,但您可能需要向
添加一个处理程序,以阻止单击事件冒泡
像这样简单的事情可能会有所帮助:
此外,您还可以在optgroup click处理程序中检查目标,如果事件的目标实际上是一个选项标记,则缩短循环,如下所示:
$("optgroup").click(function(e) {
if ($(e.target).is('option')) return;
$(this).children().attr('selected','selected');
});
您正在哪个浏览器中签入此内容?一些浏览器不会触发
单击事件(即初学者),因此您可能希望在此处重新访问您的整个方法。嗨,Nick,谢谢您的提问。我现在正在用Chrome/Safari/Firefox进行测试。如果IE不触发点击,那也没那么糟糕,这只是一个方便的选择。但是,如果用户不能选择单个选项,则会很不方便。啊,好吧,在这种情况下听起来不错,只是要确保您知道……我已经看到单击
这里的结果是“胜利,它起作用了!”…啊,废话(IE)太多次了:);-)呵呵,我解决了!
$("optgroup").click(function(e) {
if ($(e.target).is('option')) return;
$(this).children().attr('selected','selected');
});