-1

重複の可能性:
指定された div をマウスアウトし、元の div を開いたままにする

私は同様の質問をしましたが、これを解決する答えがなくても埋もれてしまいました.

元の質問は次のとおりです。指定された div をマウスアウトし、元の div を開いたままにします

。すべて設定されたフィドルは次のとおりです

すべてがフィドルで動作するように見えますが、コードは本来の動作をしません。有効な回答はすべて解決済みとしてマークされます。これは私を夢中にさせています!

4

4 に答える 4

0

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

JS フィドルのデモ

div(または他の要素を含む)は要素の境界にぴったりと収まる必要があることに注意してくださいdiv。そうしないと、mouseleaveイベントが期待どおりにトリガーされませんdivdiv > div。その他のオプションには、 display: inline;またはがありdisplay: inline-block;ます。

于 2011-07-07T23:16:24.507 に答える
0

私があなたを正しく理解していれば:

$("#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();
 }
  });
于 2011-07-07T23:22:55.263 に答える
0

これがあなたが望んでいたものであることを願っています

http://jsfiddle.net/bUzPG/16/

于 2011-07-07T23:01:23.820 に答える
0

親 div で 3 つの div を囲むことによって、このようにしたらうまくいきますか? http://jsfiddle.net/bUzPG/17/

于 2011-07-07T23:02:05.037 に答える