【问题标题】:JQuery prepend to crashJQuery 准备崩溃
【发布时间】:2013-03-15 08:26:26
【问题描述】:

如果我将任何输入 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是一个不同的类

【问题讨论】:

标签: php jquery html css


【解决方案1】:

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

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

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

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

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/

【讨论】:

  • 我们也遇到了这个问题,发现这也有效: var $content = $($.parseHTML(response.trim()))
猜你喜欢
  • 1970-01-01
  • 2019-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多