Javascript jQuery.click()事件

Javascript jQuery.click()事件,javascript,jquery,html,Javascript,Jquery,Html,我对jQuery的.click()事件有点困惑。我正在尝试在跨度内的图像上使用事件。这是包含span和image的HTML行 <span class="content-message-element"><a href=""><img class="content-message-icon" src="./images/icon_close.png" alt="Close Message" /></a></span> 这是我的jQuer

我对jQuery的.click()事件有点困惑。我正在尝试在跨度内的图像上使用事件。这是包含span和image的HTML行

<span class="content-message-element"><a href=""><img class="content-message-icon" src="./images/icon_close.png" alt="Close Message" /></a></span>

这是我的jQuery,非常感谢您的帮助。

请尝试取出空标签。此处的行为可能会产生干扰。

单击事件应该可以正常工作。尝试输入文档就绪代码,如下所示:

$(function() {
    $(".content-message-icon").click(function() {
        alert("Handler for .click() called."); 
    });
});

JSFIDLE示例:

可能会在DOM准备就绪之前触发click事件。使用这个ans

$(document).ready(function(){
        $('.content-message-icon').click(function(){
              //add click logic here
        });
});
你没有使用

$(document).ready()
试试这个

<script type="text/javascript">
  $(".content-message-icon").live("click", function () {
    alert("Handler for .click() called.");
  });
 </script>

$(“.content message icon”).live(“单击”),函数(){
警报(“调用了.click()的处理程序”);
});

这应该可以工作

可能的原因。。 jqueryversion=尝试其他 浏览器问题=尝试所有浏览器

包含在这个jquery中

$(document).ready(function()
{
  ...click event
});

其他答案提到使用jQuery的documentready,但没有人(目前)解释为什么,或者其他方法是什么。因此:如果元素还没有被解析,就不能从JavaScript(有或没有jQuery)引用该元素。要分配事件处理程序(或从JS执行任何其他元素操作),确保元素已被解析的两种方法是:

  • 将脚本块放在页面源代码中的元素之后-之后的任何位置都可以,但是在所有元素之后,并且正好在结束标记下方是合理的标准

  • 将相关代码放入
    $(document).ready()
    处理程序(如果使用jQuery)或onload处理程序中


  • (文档就绪处理程序是在包含该代码的位置创建的,甚至在它所处理的元素被解析之前,但直到整个文档就绪后才会执行。)

    尝试将
    document.ready
    调用放在click函数之前。我猜。click事件不适用于类..你应该只使用id…@CodeJack,事实并非如此。点击事件按书面形式进行。好的,好的,对不起,我的不好…不知道我是怎么提到的…你指的是标签吗?这是为了让它看起来可以点击,我不知道是否有另一种方法可以让我的图像明显可以点击。我删除了标签,但我仍然得到了相同的行为。你可以使用css使它“看起来”像一个链接。太棒了,工作非常完美!我想我对jQuery还有一点了解:PEveryone必须从某个地方开始:)。理解为什么代码必须放在document ready函数中是很好的,阅读应该会给您提供更多的信息。@CodeJack click函数没有任何限制,它可以在任何对象上触发,例如id、类、DOM元素lyk锚定标记、div、span等
    $(document).ready(function()
    {
      ...click event
    });