jQuery类选择器无法正常工作

时间:2011-07-06 09:30:03

标签: javascript jquery html selector

当在div中点击具有特定类的锚标记时,我很难提出警告。

我的html部分看起来像这样......

<div id="foo">
  <a class='bar' href='#'>Next</a>
</div>

jQuery部分如下..

$('.bar').click(function()
{
  alert("CLICKED");
});

我的问题是我无法得到这个警报,我认为我正在选择“下一个”课程,但由于某些原因它不会接受它。我也尝试过这个page几乎所有东西,但没有任何效果。如果我不尝试指定锚标记,即$('#foo')。单击(function()...然后它可以工作,但是这个div中会有多个锚标记,所以只需在执行时执行警报单击div将不能满足我的需要。这个网站是一个搜索引擎,使用ajax将信息发送到do_search.php。在do_search.php中,我根据找到的结果做出分页决定,并且如果适用,可以制作并回显下一个,上一个,最后一个和第一个链接。

编辑:我刚想通了,它是我的.next函数的位置,因为它不是在初始文档加载时创建的,而是在返回结果后,我将.next函数移动到成功ajax函数的一部分,因为这是按钮将被创建的地方,现在它可以工作。

4 个答案:

答案 0 :(得分:32)

尝试使用live()命令:

$(".bar").live("click", function(){ alert(); });

因为你通过AJAX加载你的按钮,所以点击事件没有绑定到它。如果使用live()命令,它将自动将事件绑定到页面加载后创建的所有元素。

更多详情,here

答案 1 :(得分:7)

你肯定错过了$(document).ready()。你的代码应该是:

  $(document).ready(function(){
      $('.bar').click(function()
      {
        alert("CLICKED");
      });
    });

希望这会有所帮助。干杯

答案 2 :(得分:5)

.live现已弃用,是此选定的答案。答案在上面选定答案的评论中。这是解决它的解决方案:

$(document).on('click','.bar', function() { alert(); });

感谢@Blazemonger的修复。

答案 3 :(得分:1)

  1. 确保您已正确包含JQuery Library
  2. 确保您的脚本是在$(document).ready() in short $(function(){ });
  3. 之间编写的

    演示:http://jsfiddle.net/W9PXG/1/

    <div id="foo">
      <a class='bar' href='#'>Next</a>
    </div>
    
    $(function(){
    $('a.bar').click(function()
      {
        alert("CLICKED");
    });
    });