1

Picasa アカウントを使用して画像ギャラリーを表示できる Picasa Web Integrator (PWI) コードを使用しています。フォームを使用してユーザーがキーワードを書き込むと、コードによって div が作成され、PWI が呼び出されます。

それは完全に機能しますが、ユーザーが更新せずに別のキーワードを選択できるようにするために、「戻る」ボタンを追加しようとしています。

しかし、コードはメモリをクリアしていないようで、結果は最初と同じです。

コードは次のとおりです。

//The button that the user presses when he has written the keyword. 
    $("#boton2").click(function() { 
            //Creates a new div 
            $(".shop3").append("<div></div>"); 
            $('.shop3 > div').attr('id', 'container3'); 
            //gets the keyword and creates a variable called "competidor"
            competidor = $('#competidor_txt').val(); 
            //calls for the PWI code...
            $("#container3").pwi({ 
                    username: 'davidagnino', 
                    mode: 'keyword', 
                     ... 
                     //This part works perfectly.

//The "back" button that should delete the div called #container3 
   $('#back3').click(function() { 
            event.preventDefault(); 
            competidor=null; 
            delete competidor; 
            $("#container3").empty();     //should make my div empty 
            $("#container3").remove();    //deletes the div...
    });
4

1 に答える 1

1

ここでの最善のアプローチは、その場で Div の ID を変更し、毎回まったく新しい div として設定することだと思います。

カウンター変数を設定します(理想的には静的ですが、それが頭に浮かぶ場合はグローバルです):

var divCounter=0;
$("#container"+divCounter).pwi({/*...*/});

それを破棄するときが来たら、divCounter をインクリメントして、まったく新しい div を生成します。仕事を終わらせる必要があります!

明らかに、すべてのイベント ハンドラーで一般的に参照します。

$("#container"+divCounter);

何かを削除すると、DOM から完全に削除されるため、同じ操作で空になります。次のように、関数を連鎖させることも jQuery の良い習慣です。

$("#container3").append(/*whatever*/).attr(/*whatever*/);
于 2010-08-23T17:58:02.103 に答える