jQuery效果返回undefined

时间:2012-02-28 19:29:44

标签: jquery jquery-ui highlight effect

我有以下块:

$('.new_comment').live('ajax:success', function(evt, data, status, xhr){
  $('.comments article:last').after(xhr.responseText).effect("highlight", {}, 3000);
})

因此,当提交new_comment表单时,它会调用它。

after()函数运行正常,但effect()调用正在抛出此错误:

TypeError: 'undefined' is not a function (evaluating '$('.comments article:last').after(xhr.responseText).effect("highlight", {}, 3000)')

我正在使用jQuery 1.7.1和jQuery UI 1.8.16。

更新: xhr.responseText会返回新创建的article元素,如下所示:

<article id="2">
  <h6><a href="#">Joe</a> <span>(<a href="#2">less than a minute ago</a>)</span></h6>
  <p>This is the new comment!</p>
</article>

添加后,.comments DOM如下所示:

<section class="comments">
  <h3>Comments</h3>
  <article id="1">
    <h6><a href="#">Joe</a> <span>(<a href="#1">less than a minute ago</a>)</span></h6>
    <p>This is a comment!</p>
  </article>
  <article id="2">
    <h6><a href="#">Joe</a> <span>(<a href="#2">less than a minute ago</a>)</span></h6>
    <p>This is the new comment!</p>
  </article>
</section>

另外,如果我运行console.log($('.comments article:last'));,它肯定会返回创建的对象。

2 个答案:

答案 0 :(得分:9)

我弄明白了这个问题。我两次加载jQuery库。一旦使用预先捆绑的版本与Rails和一次使用谷歌的CDN。删除其中一个,现在一切正常。叹息。

答案 1 :(得分:-1)

由于ajax post而创建的新元素未与父容器链接。似乎通过发布创建了新的命名空间。因此,您不能触摸在post函数的结果部分中未定义的页面主体的任何元素。