【问题标题】:Rails 4 jQuery selector not workingRails 4 jQuery选择器不起作用
【发布时间】:2014-05-30 17:39:01
【问题描述】:

我不明白为什么这不起作用;这看起来很简单。活动类不是 added 到 jQuery 选择的 div 的 first child,类为 carousel-inner。

<div id="public-feed-carousel" class="carousel slide" data-ride="carousel">
    <div class="carousel-inner">
        <div class="item">
            <img src="http://placehold.it/600x200">
        </div>
        <div class="item">
            <img src="http://placehold.it/600x200">
        </div>
        <div class="item">
            <img src="http://placehold.it/600x200">
        </div>
    </div>
</div>

<script>
  $(function() {
    $('div.carousel-inner:first-child').addClass("active");
  });
</script>

这是在 Rails 应用程序的显示视图中。

【问题讨论】:

  • 控制台有错误吗? jQuery 加载了吗?
  • 未捕获的类型错误:无法从控制台读取未定义的属性“切片”。虽然这个错误似乎无关。
  • 不相关的错误可能会导致 JavaScript 停止执行。

标签: javascript jquery ruby-on-rails-4


【解决方案1】:

使用div.carousel-inner:first-child,您是在说“给我所有具有 carousel-inner 类且是其父级的第一个孩子的 div。”

听起来你的意思是,“给我所有具有 carousel-inner 类的 div 的第一个子元素”,实际上看起来像这样:

div.carousel-inner :first-child

【讨论】:

  • 就是这样;感谢您解释我的错误。这就是我最终使用$('div.carousel-inner .item:first-child').addClass("active"); 的原因,因为我相信这就是我试图“说”的内容。
【解决方案2】:

有没有可能,在你的函数被执行之前,另一个 JavaScript 会转换 DOM?尝试使用console.debug on $('div.carousel-inner:first-child') 查看它是否存在以及它可能位于何处。另一件事是,您可能希望将 JavaScript 放在 document.ready 部分中,以便在 DOM 完成加载后执行。

【讨论】:

  • 一个好主意,你解释的事情以前发生在我身上,但这是一个相当新的项目,所以没有其他 js 可以偷偷进入操纵 dom :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-19
  • 2015-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-02
相关资源
最近更新 更多