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 按钮 - 但它的行为不像一个。

不容易解释,所以我做了一个 jsfiddle 来展示它的基本原理。

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

我哪里错了?

4

1 回答 1

0

问题是您正在更改信息框中的 HTML。这将复制所有呈现的 HTML InfoBoxClone,但不会复制现有的 javascript 事件处理程序。这些 javascript 事件处理程序是在.button()按钮上调用时创建的,这就是为您提供悬停和单击行为的原因。

我建议隐藏和显示 HTML,而不是复制隐藏的 HTML。您不仅不会有这个错误,而且您当前有重复的 id,因为您正在复制 HMTL。

于 2013-06-10T16:58:36.907 回答