我有以下标记:
<div style="height:100px; width:280px; float:left" >
<p style="float:left; padding:5px;" id="optionOne">
<label style="cursor:pointer; width:100px" id="optionLabelOne">Option 1</label>
<span style="color:red; font-size:10px"></span>
<input class="u-3" name="ageGroup" id="ageGroup" style="width:230px;" />
</p>
</div>我有几个这样的重复div。我选择
其中的标签如下所示:
$('#optionOne,#optionTwo,#optionThree,#optionFour').on('mouseover',function(){
$(this).on('mouseover',function(){
//do something here});
});现在,在以后的某个阶段,我需要在"p“标记上执行一个单击事件,但不包括位于其中的"input”标记。
当我使用下面的代码时,单击事件也会在输入字段上触发(很明显)
$(this).on('click',function(){
//do something
});那么如何才能选择完整的p标记,而不需要对其中的input元素做任何操作。
我也试过这个:
$(this).not('input').on('click',function(){
//// NOT WORKING
});请发表意见。
发布于 2012-11-17 16:51:19
您可以使用event对象的stopPropagation方法:
$('p input').on('click', function(event){
event.stopPropagation()
})请注意,不需要将处理程序绑定到this对象,因为您已经选择了所有元素:
$('#optionOne,#optionTwo,#optionThree,#optionFour').on('mouseover',function(){
//
});您还可以将类添加到p标记并使用类选择器:
$('p.options').on('mouseover',function(){
// $(this).foo()
});https://stackoverflow.com/questions/13429065
复制相似问题