0

aspx ページに class= "._aHide" の要素があり、メッセージが含まれており、繰り返し表示されます。

<div id="Message1" class="._aHide" runat="server" visible="true"><p>My Message</p></div>
  • 表示プロパティ = true の場合、ページの読み込み時に aspx サーバー側要素が作成されません。

マウスオーバーしない限り、表示してから 7 秒後にこの div を非表示にする必要があります。

このコードを作成しました

$(document).ready(function () {
    var hide = false;
    $("._aHide").hover(function () {
    clearTimeout(hide);
    });

    $("._aHide").mouseout(function () {
    hide = setTimeout(function () { $("._aHide").fadeOut("slow") }, 7000);
    hide;
    });

    $("._aHide").ready(function () {
    hide = setTimeout(function () { $("._aHide").fadeOut("slow") }, 7000);
    hide;
    });
});

しかし、ここで何かが間違っています

1- このコードは 1 回だけ機能し、このメッセージを何度も表示します。

2- settimeout で $(this) を使用できず、理由がわからないため、すべてのメッセージ ボックスが一度に非表示になります。

ご協力ありがとうございました。本当に感謝しています

4

2 に答える 2

4

HTML コードのポイントを削除します。

<div id="Message1" class="_aHide" runat="server" visible="true"><p>My Message</p></div>

参照: http://api.jquery.com/class-selector/

于 2012-11-10T23:26:26.967 に答える
1

tbraun89 は正しいです。「.」を削除します。あなたのhtmlコードで。

次に、次のようにコードを簡素化できます。

JQueryホバーには、とを使用する2つの機能がmouseenterありますmouseleave

$(document).ready(function () {
    var hide = false;
    $("._aHide").hover(
    function () {
        //Cancel fadeout
        clearTimeout(hide);
    },
    function(){
         //re-set up fadeout
        clearTimeout(hide);            
        hide = setTimeout(function () { $("._aHide").fadeOut("slow") }, 7000);
    });

    //Set up fadeout
    hide = setTimeout(function () { $("._aHide").fadeOut("slow") }, 7000);
});
于 2012-11-10T23:29:31.910 に答える