【问题标题】:Jquery $("img").click(function() selector not workingJquery $("img").click(function() 选择器不工作
【发布时间】:2014-09-29 11:29:31
【问题描述】:

由于某种原因,当我单击带有此 JQuery 代码的图像时,警报屏幕没有出现。

HTML:

<div id="example1">
 <div>
  <div>
   <div class="user">
    <img class="Image" src="images/image.jpg">
   </div>
  </div>
 </div>
</div>

Javascript:

$(document).ready(function(){
 $("img").click(function(){
  alert("it works!");
 });
});

我不知道为什么这不起作用我包含了 jquery 库并且&lt;script&gt; 标记位于 div 下

【问题讨论】:

  • 在这里工作正常jsfiddle.net/J24yN/446
  • 您是否在此 javascript 代码之前包含了 jquery 库?
  • 检查您的控制台是否有错误
  • 我知道我只是无法让它在我的 xampp 中的 .html 页面上运行它只是不响应点击
  • 工作正常。我几乎可以肯定,你导入了 jquery 错误。

标签: jquery html selector


【解决方案1】:

注册事件处理程序时,img 不在 DOM 中。你可以使用$('body').on('click','img',function(){alert('it works');})

【讨论】:

  • 或:$('img').bind('click', function(){...});
  • 好吧,只有 "$('body').on('click','img',function(){alert('it works');})" 有效,但不是 $( 'img').bind('click', function(){...});我想知道为什么。
【解决方案2】:

与其在 document.ready() 中运行代码,不如使用 window.load() 函数。

$(window).load(function() {
    $("img").click(function(){
        alert("it works!");
     });
});
  • document.ready() 是一个 jQuery 事件,它在 DOM 准备好时运行,例如 所有元素都可以找到/使用,但不一定全部 内容。
  • window.load() 稍后触发(或同时在 最坏/失败的情况)当图像等被加载时,所以如果你 例如,使用图像尺寸,您经常想使用它 而是。

【讨论】:

    【解决方案3】:
     $(document).ready(function(){
        $(".Image").click(function(){
        alert("it works!");
       });
      });
    

    如果您希望您的代码无需更改即可工作,只需输入 .Image 而不是 img 类名而不是属性名

    【讨论】:

      【解决方案4】:

      试试这个,它也适用于来自 ajax 请求的图像。

      $(document).on('click','img',function(){
      alert("Click event works!");
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-17
        • 1970-01-01
        • 2013-06-24
        • 1970-01-01
        • 1970-01-01
        • 2011-04-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多