在IE7,8,9中选择HTML Click()上的更改?

时间:2011-07-12 12:49:49

标签: jquery html click mouseenter

我有以下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内,因此应该是活跃的吗?

2 个答案:

答案 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中不起作用