0

私は次の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あり、したがってアクティブである必要がありますか?

4

2 に答える 2

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の代わりにmouseoutとmouseoverに。

達成したいことを教えてください。

于 2011-07-12T13:00:00.993 に答える
0

更新:.change()これを解決するために最後に使用されます。

-jQuery1.6.2.live(change,function() {});では機能しないことに注意してください

于 2011-07-12T15:50:45.843 に答える