2

http://www.henrybuilt.com/trade2/resource.php?id=100

上記のリンクをチェックしてください。ログイン: asdf、asdf

編集:ログインしたら、上のリンクの竹をクリックしてください。ありがとうございます。

次のコード (「ポップアップ」ウィンドウ (div) を切り替えます) はページ上では実行されませんが、開発パネルにコピーして貼り付けると機能します。

            $(".maintypedata img").click(function() {
                console.log("test");
                if(open == false) {
                    var src = $(this).attr("src");
                    $(".popup").html("<img src='"+src+"'/>");
                    open = true;
                    $(this).addClass("selected");
                    $(".popup").slideFadeToggle(function() { 

                    });
                }
            });

スクリプトから実行するにはどうすればよいですか?

4

1 に答える 1

1

表示されたクリック ハンドラーは、そのコードの実行時に".maintypedata img"存在するすべての要素にバインドされます。ただし、「Bamboo」オプションをクリックすると、問題の img 要素がドキュメントに動的に追加されます。したがって、要素が追加された後にそのコードを実行するか(これは、コンソールから実行して行っていたことです)、または委任されたイベント ハンドラーとして機能するように変更する必要があります。.click()

        $(".maintypedata").on("click", "img", function() {
            console.log("test");
            if(open == false) {
                var src = $(this).attr("src");
                $(".popup").html("<img src='"+src+"'/>");
                open = true;
                $(this).addClass("selected");
                $(".popup").slideFadeToggle(function() { 

                });
            }
        });

つまり、最初に存在する要素 (この場合は ) にクリック ハンドラーをバインドしますが".maintypedata"、2 番目のパラメーターでセレクターを指定する.on()と、jQuery は、クリックされた項目がイベント時にその 2 番目の選択と一致する場合にのみハンドラーを実行します。

(委任されたハンドラーは、同じハンドラーを多数の個別の要素にバインドするよりも効率的ですが、それは追加のボーナスです。)

于 2013-08-02T22:41:42.647 に答える