Выберите изменение в HTML Нажмите () в IE7,8,9? - PullRequest
0 голосов
/ 12 июля 2011

У меня есть следующий 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 голосов
/ 12 июля 2011

Обновление: используется .change() в конце, чтобы решить эту проблему.

Заметил, что - .live(change,function() {}); не работает в jQuery 1.6.2

0 голосов
/ 12 июля 2011

Я не уверен, что вы пытаетесь сделать, но попробуйте просто изменить

    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');   
    }
});

на mouseout и mouseover вместо mouseenter и mouseleave.

Не могли бы вы описать, что вы хотите выполнить?

...