【问题标题】:Javascript only does only work on some places on the pageJavascript 仅适用于页面上的某些地方
【发布时间】:2013-07-09 16:02:49
【问题描述】:

我将javascript代码直接添加到html中,所以你可以看到我做错了什么。

警报仅对 div class='sandbar-one' 中的 img 有效。

html 输出如下所示:

<html>
  <head> … </head>
  <body>
    <div class="header">
      <div class="sandbar">
        <a style="display:block" href="/">
          <div class="sandbar-logo">
            <div class="sandbar-one">
              <img width="300" src="/assets/123456.png" alt="123456"></img>
            </div>
          </div>
        </a>
        <div class="sandbar-left"> … 
      </div>
    </div  
    <div class="navbar navbar-inverse navbar-fixed-top"> … </div>
  </div>
  <div class="content" data-target="#sidenavbar" data-spy="scroll">
    <div class="container-fluid">
      <div class="row-fluid">
        <div class="span3"> … </div>
      <div class="span9">
        <script>
          $("img").hover(function() {
           alert("Hello World!");
           },function() {
           }) 
        </script>
        <img src="/assets/123456.png" alt="123456"></img>
        ...

haml 文件:

:javascript
  $("img").hover(function() {
        alert("Hello World!");
  },function() {
  });

= image_tag("/assets/123456.png")

我在 Firefox 和 Safari 中进行了测试。网络控制台没有显示任何错误。

【问题讨论】:

    标签: javascript ruby-on-rails ruby-on-rails-3.2 haml


    【解决方案1】:

    这看起来是因为在执行 javascript 时,文档中只加载了一个 img。尝试在页面加载时执行 JS

    $(function(){
      $("img").hover(function() {
            alert("Hello World!");
      },function() {
      });
    });
    

    【讨论】:

    • 或者只是将 JavaScript 添加到 HTML 文件的底部
    • 或尝试使用事件委托
    • 啊!你是绝对正确的,我想知道我的愚蠢:我怎么能忘记这一点!非常感谢。
    猜你喜欢
    • 2014-01-11
    • 2023-03-17
    • 2011-07-04
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 2017-09-20
    相关资源
    最近更新 更多