我有以下html
<div id="active-el">
<select id="select-drop">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<div>test test test</div>
</div>
用jQuery
var active = true;
jQuery('#active-el').live('mouseenter', function () {
active = true;
console.log('over active = true');
});
jQuery("html").click(function () {
if (!active) {
alert('not selected');
}
});
你可以看到它在这里工作http://jsfiddle.net/hLDxM/2/。我有一个问题,当我change
选择下拉列表时 - 它变得不活跃了?
即使用户将select
更改为任何值,我如何确保(html).click
事件不会被触发?那是 - 无论选项1,2,3或 - 它仍然在#active-el
内,因此应该是活跃的吗?
答案 0 :(得分:0)
我不确定你要做什么,但试着改变
var active = true;
jQuery('#active-el').live('mouseover', function () {
active = true;
console.log('over active = true');
}).live('mouseout', function () {
active = false;
console.log('over not active = false');
});
jQuery("html").click(function () {
if (!active) {
alert('not selected');
}
});
鼠标输出和鼠标悬停而不是mouseenter和mouseleave。
你能描述一下你想要完成什么吗?
答案 1 :(得分:0)
更新:最后使用.change()
来解决此问题。
注意到 - .live(change,function() {});
在jQuery 1.6.2中不起作用