【问题标题】:There's something really wrong with my simple Ruby on Rails app我的简单 Ruby on Rails 应用程序确实有问题
【发布时间】:2011-07-14 19:56:26
【问题描述】:

在人们投票反对我没有发布代码 sn-ps 之前,让我告诉你,我已经尝试过很多次,但人们似乎无法弄清楚哪里出了问题。查看 Why doesn't this jquery code work?This jQuery hide function just does not want to work 以了解不工作的示例。这是一个使用 jQuery 和嵌入 API 的 Ruby on Rails 应用程序。奇怪的是,人们一直在将完全相同的 javascript 和 html 代码复制到 jsfiddle 中,并且对他们有用。

我在问是否有人可以在这里查看代码并将其分叉:https://github.com/meltzerj/Dreamstill 对 Ruby on Rails 和 jQuery 有足够了解的人,并且可以弄清楚嵌入 API。真的没有很多代码,所以它不应该那么麻烦。我真的很感激能帮助我走上正轨。谢谢。

哦,请不要犹豫,问我任何问题。

【问题讨论】:

  • 首先,您使用的是什么浏览器,您是否尝试过其他浏览器?
  • 是的,我试过不同的浏览器...我的主要浏览器是 chrome

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


【解决方案1】:

我已经提取了您的代码,并且我认为(希望)我可能会为您提供解决方案,前提是我已正确识别出您的问题。

我在表单中粘贴了一个 YouTube 链接并被重定向到 /videos/1,其中有一个“视频”链接,后来被视频缩略图嵌入替换。

我看到的问题在于:

$("#video_div img").click(function() {
  $("div.embed").toggle();
});

当您的文档就绪处理程序被调用时,您的文档中还没有图像,因此您的#video_div img 选择器无法找到任何内容。这可以通过使用live() jQuery 方法而不是click() documentation 轻松纠正。我将其更新为:

$("#video_div img").live('click', function() {
  $(this).toggle();
  $("div.embed").toggle();
});

这似乎工作正常:点击时,缩略图消失了,嵌入的视频出现了。

希望能帮助您指明正确的方向。

【讨论】:

  • 谢谢!!!这行得通!对此,我真的非常感激!顺便说一句,.live() 与 .bind() 有何不同?文档对此并不太清楚。
  • bind() 会在调用选择器时立即查找,在本例中为 #video_div img。另一方面,live() 会定期检查您的文档中的选择器。如果您的文档结构异步更改,live() 可能是要走的路。
猜你喜欢
  • 2012-03-02
  • 2016-01-06
  • 2021-07-03
  • 1970-01-01
  • 1970-01-01
  • 2017-04-25
  • 1970-01-01
  • 2010-12-18
  • 1970-01-01
相关资源
最近更新 更多