0

Webページで次のajax呼び出しがあります...

    var href=$('.poplight').attr("href");
    $('.poplight').attr("href","#");
    $('.poplight').click(function(){
        $.get(href, function(data) {
                $("#popup-contents").html(data) 
                    // inserts <div id="additionalInfo"> 
                    // <legend id="legend-params">Legend</legend>
                    // <div id="toggle"> This should toggle </div> </div>

            }
        );
    });

</script>

同じページに、凡例がクリックされるたびに#toggledivを切り替える.jsスクリプトがリンクされています。これはすべて別のページで正常に機能しますが(凡例がそれ自体で切り替わるだけです)、ajax呼び出しで機能させることができません。jqueryが特定のドームに「アタッチ」するときと関係があると思います...jqueryの内部動作については、本当に確実に知るには十分ではありません。

これが外部スクリプトです。私はonloadを試し、htmlとインラインで追加し、他のいくつかのバリエーションを試しました。これらの関数は、凡例がクリックされたときに実行されます(.show()メソッドの後にalert('test')を挿入すると、アラートウィンドウが表示されます)。

$('#toggle').hide();                                            
$("#legend").toggle(
    function() {
       $("#toggle").show("slide", {direction: "up"}, 200);
    }, 
    function() {
       $("#toggle").hide("slide", {direction: "up"}, 200);
});

どんな助けでも素晴らしいでしょう!

4

1 に答える 1

0

上記のコメントは、問題の解決に役立ちました(SOの「アルゴリズム」によってコメントに変換されたと思います...回答としてマークされているはずです)。私は本質的に変更しました:

$( "#legend")。toggle(...)to

$( "#legend")。on('click'、functionX()...)ここで、グローバル変数がtrueまたはfalseの場合にいくつかのものを隠したifステートメントがかなり美化されたfunctionX。おそらく最もクリーンなソリューションではありませんが、それは仕事をしました。

于 2012-11-20T13:34:30.190 に答える