2

誰かがリンクにカーソルを合わせた場合、そのリンクに関する情報を含む要素を動的に作成する必要があるという状況が必要です。

そのために利用できる標準のjqueryスクリプトがいくつかあることは知っていますが、jqueryを理解するために自分で作成したいと思います。

次のように要素を表示します。


    $(".event-date").live("mouseover",function(e){
        var event = e || window.event; 
        event.preventDefault();
        $(this).append("<div id='showEventInfoWrap'><div id='closeEventInfo'>Close</div><div id='showEventInfo'></div></div>");
        $("#showEventInfo").load("event-info.php");
    });

ユーザーが月をナビゲートすると変化live()する要素にカレンダーが表示されるため、使用します。<div>

問題は、次の場合に div を非表示にすることです。a) ユーザーが「閉じる」リンクをクリックした場合。または b) ユーザーが表示された要素から離れた。

次のオプションのいずれかを試しましたが、どちらも機能しませんでした。


    $("#closeEventInfo").live("click",function(e){
        $(this).parent().attr("id").remove();
        $("#showEventInfoWrap").remove();
        $("#showEventInfoWrap").children().remove();
        $("#showEventInfoWrap").add("#closeEventInfo").add("#showEventInfo").remove();
    });

empty()代わりに試してみましremove()たが、結果はありませんでした。

誰かが私が間違っていることを知っていますか?

4

1 に答える 1

3
$(this).parent().attr("id").remove();

エラーがスローされ、スクリプトが終了します。
.attr()引数を 1 つ指定すると、文字列または が返されますundefined。jQuery オブジェクトで.removeはないため、定義されていません。

  • 親要素を削除する場合は、次を使用します。

    $(this).parent().remove();
    
  • ID 属性を削除する場合は、次を使用します。

    $(this).parent().removeAttr("id");
    

$("#showEventInfoWrap").remove();childs を含む#showEventInfoWrap要素を削除します。

于 2012-05-03T10:17:49.210 に答える