Jquery .clone() 导致 $.post 失败

Jquery .clone() causing $.post to fail

本文关键字:post 失败 导致 clone Jquery      更新时间:2023-09-26

我使用 .clone(true, true) 复制了 HTML,因为我想保留 JQuery 事件处理程序。 当我通过 $.post 将其传递给 PHP 时,帖子失败并在 firebug 中给我以下错误

uncaught exception: [Exception... "Could not convert JavaScript argument" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: jquery-1.7.2.js :: <TOP_LEVEL> :: line 7740" data: no]

我想以某种方式保留 HTML 及其 JQuery 事件处理程序,因为我正在编写一个脚本来保存用户所处的状态。

更新(添加的代码)

//Save HTML w/ JQuery
GSaveState = new Object();
GSaveState['HTML'] = $('#content').clone(true, true);
$.post("DecoPOState.php", { SavedState: GSaveState},
        function(data){
            alert("Test");
        }
    );

你的代码的问题在于你试图发送一个 DOM 元素 - 由于显而易见的原因你不能这样做。假设您要发送该元素的 HTML 代码,请使用 $('#content').html()

var GSaveState = {
    HTML: $('#content').html();
};
但是,事件

处理程序不包含在该字符串中,因为它们附加到元素而不是内联事件(即它们不是出现在 DOM 树中的属性)。

但是,保存应用程序的状态事件处理程序根本不重要。对要保存的状态信息使用变量,并将其包含在 POST 数据中。