3

如果我将任何输入 ajax 到我的页面中,则以下代码可以工作,但是如果我打印一些特定代码,则会出现异常,警报 test3 永远不会触发。

alert("test2");
$(html).hide().prependTo("#current table.vtable").fadeIn("slow");
alert("test3");

我得到 jquery 异常:

Uncaught TypeError: Cannot set property 'cur' of undefined 

正如我所说的 CSS 工作正常,我尝试打印其他类,它工作得很好,唯一的区别是我使用

print <<<END
...
END;

而不是普通的打印和 tr 是一个不同的类

4

1 回答 1

5

从 jquery 1.7 升级到 1.9 后,我刚刚遇到了这个问题。这是fadeIn() 实现中的一个错误。

这与当您查询不存在的键时 data() 方法现在返回 undefined 而不是 null 的事实有关。

无论如何,我发现的一种解决方法是先添加数据,然后获取新的、预先添加的内容的 jquery 句柄,然后将其淡入

由于您将新内容插入到表格中,因此找到您刚刚插入的内容有点烦人,因为它实际上不是第一个孩子(它隐含地包含在“tbody”标签中)。我通过在插入的东西上设置一个临时属性,搜索它,然后删除它来解决这个问题这显然是一个巨大的黑客攻击,但它确实有效。

var html = "<tr><td>new thing1</td><td>new thing2</td>";

$("#clickme").click(function () {
    var target = $("#current table.vtable");
    $(html).attr("jquery_workaround","sigh").hide().prependTo(target);
    var newstuff = target.find("[jquery_workaround=sigh]");
    newstuff.removeAttr("jquery_workaround").fadeIn("slow");
});

对于摆弄:http: //jsfiddle.net/BUVUj/

于 2013-04-06T22:26:30.310 回答