0

我在这里期望的是当我单击类时触发的功能,但它没有发生!a.button 是动态创建的,但是当它完全加载时就在页面上!

任何想法为什么?

HTML:

   <a class="btn btn-success useImg">
          <i class="fa-icon-plus"></i>
          <span>Use</span>
   </a>

查询:

    $(".useImg").on("click", function(){
    alert("test");
    });
4

5 回答 5

4

您的代码在独立的 jsFiddle 中运行良好,您可以在此处看到。

因此,您必须遇到以下问题之一:

  1. 您正在尝试在 DOM 准备好或对象存在之前安装事件处理程序。
  2. 您的 javascript 中有一个错误,导致无法安装事件处理程序。
  3. 您的页面或 HTML 中的实际代码与您在问题中输入的代码不同,因此还有其他一些未披露的问题。

$(document).ready()您可以通过将代码放入处理程序或使用委托事件处理来防止第一项。

对于第二项,您必须检查浏览器错误控制台是否有脚本错误。

于 2013-05-12T17:45:13.527 回答
1

您需要将 click 事件添加到 DOM 树更上方的另一个元素,然后对其进行过滤以处理您的锚元素。这将触发.useImg该类的任何元素,包括动态添加的元素。

$('body').on("click", ".useImg", function(){
    alert("test");
});

http://api.jquery.com/on/

确保将代码包装在 jQuery DOM Ready 事件中以确保页面已完全加载。例如

$(document).ready(function() {
  $('body').on("click", ".useImg", function(){
        alert("test");
    });
});
于 2013-05-12T17:41:56.827 回答
0

尝试,当文件准备好时

$(function() {
 $(".useImg").on("click", function(){
    alert("test");
    });
}
于 2013-05-12T17:43:28.537 回答
0
$(document).ready(
  $('.useImg').click(function(){ alert(test); })
)
于 2013-05-12T17:43:55.780 回答
0

尝试使用$("body").on("click", ".useImg", function(){ alert("test"); });

并且建议您使用最新的 jquery lib http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js

于 2013-05-15T13:02:57.323 回答