私は同様の質問をしましたが、これを解決する答えがなくても埋もれてしまいました.
元の質問は次のとおりです。指定された div をマウスアウトし、元の div を開いたままにします
。すべて設定されたフィドルは次のとおりです
。
すべてがフィドルで動作するように見えますが、コードは本来の動作をしません。有効な回答はすべて解決済みとしてマークされます。これは私を夢中にさせています!
私は同様の質問をしましたが、これを解決する答えがなくても埋もれてしまいました.
元の質問は次のとおりです。指定された div をマウスアウトし、元の div を開いたままにします
。すべて設定されたフィドルは次のとおりです
。
すべてがフィドルで動作するように見えますが、コードは本来の動作をしません。有効な回答はすべて解決済みとしてマークされます。これは私を夢中にさせています!
div
最も簡単な方法は、要素を親でラップし、イベントをそのコンテナーにdiv
割り当てることです。hover()
html:
<div>
<div class="x">x</div>
<div id="openDiv" class="y">me</div>
<div class="z">z</div>
</div>
jQuery:
$('.container').hover(
function(){
$('#openDiv').addClass('highlight');
},
function(){
$('#openDiv').removeClass('highlight');
});
親div
(または他の要素を含む)は要素の境界にぴったりと収まる必要があることに注意してくださいdiv
。そうしないと、mouseleave
イベントが期待どおりにトリガーされませんdiv
)div > div
。その他のオプションには、 display: inline;
またはがありdisplay: inline-block;
ます。
私があなたを正しく理解していれば:
$("#openDiv").mouseout(function (e) {
var used_classes = ['x', 'z'];
var $c = $(e.relatedTarget).attr('class');
if ($c=='x' || $c=='z')
{
$("#openDiv").show().css('background-color', 'pink');
}else{
$("#openDiv").hide();
}
});
これがあなたが望んでいたものであることを願っています
親 div で 3 つの div を囲むことによって、このようにしたらうまくいきますか? http://jsfiddle.net/bUzPG/17/