1

我有一个奇怪的问题,不知道如何解决它。
我的页面在 $(function() 事件中加载了一个插件。页面上有一个按钮隐藏第一个 DIV(包含呈现的插件)并将另一个 html 页面中的内容加载到第二个 DIV 中。第二个中的新内容DIV 有一个“取消”按钮,可以隐藏第 2 个 DIV 并显示原始第 1 个 DIV。

一切正常 - 但 DOM 丢失了插件功能,因此插件不再正常工作。该插件正在尝试在插件中加载函数(即:$.fn.myplugin = function()...)。

这是一些伪代码

第一页.....

$function() { 
    //Load plugin
    $("div1").theplugin();

    $("button1").click(function() {
        $("div1").hide();
        $.get("2ndpage.html", function (data) { $("div2").html(data);  });
    }); 
};

第二页……

$function() { 
    $("button2").click(function() {
        $("div2").hide();
        $("div1").show();
    }); 
};

....此时,如果我单击 button2,它会隐藏 DIV2 并显示 DIV1 - DIV1 仍处于单击 button1 之前的最后状态,但插件的功能均不在 DOM 中。

有谁知道如何解决这个问题?提前致谢!

更多信息 我将手表放在插件的功能(有问题的功能)上,当代码到达这一点时,它从定义变为“未定义”:

$.get("2ndpage.html", function (data) { 
    $("div2").html(data);  //HERE
});

这几乎就像 DOM 被 .get() 调用的页面所取代 - 但这似乎不对 - 或者是吗?也许有一种特殊的方法可以杀死第 2 页的内容,以便 DOM 回到调用 .get() 之前的状态?我不知道,thos 问题很奇怪而且令人沮丧 :) 谢谢大家

4

1 回答 1

0

也许您可以尝试以下一种按钮的点击事件

在这里,我只申请了 1 个按钮。您应该将它应用于两个按钮并检查出来。

$("button2").unbind('click').bind('click', function () {
   $("div2").hide();
   $("div1").show();
   return false; //to prevent the browser actually following the links!
});

我希望这对你有帮助。

于 2013-01-06T10:27:56.177 回答