0

非表示にしたい div があります。次に、ボタンを含む html をロードして、もう一度表示します。ボタンを jquery ui ボタンにします。

$("#InfoBox").hide("slide", {
    direction: "right"
}, 1000, function () {
    $("#InfoBox").html($("#InfoBoxClone").html());
});

$("#butEditor").button();

$("#InfoBox").show("slide", {
    direction: "left"
}, 1000);

表示されると、確かにjquery uiボタンのように見えますが、1つとして動作しません。

説明するのは簡単ではないので、要点を示すために jsfiddle を作成しました。

http://jsfiddle.net/Upland/JFUuH/6/

どこが間違っていますか?

4

1 に答える 1

0

問題は、情報ボックスにある HTML を変更していることです。これにより、レンダリングされたすべての HTML が にコピーされますが、配置さInfoBoxCloneれている JavaScript イベント ハンドラはコピーされません。これらの JavaScript イベント ハンドラーは.button()、ボタンで が呼び出されたときに作成されます。これにより、ホバーとクリックの動作が得られます。

非表示の HTML をコピーするのではなく、HTML を非表示にして表示することをお勧めします。このバグが発生しないだけでなく、HMTL を複製しているため、現在 ID が重複しています。

于 2013-06-10T16:58:36.907 に答える