多次调用jQuery函数

时间:2013-11-17 20:28:04

标签: javascript jquery function ready

所以,我在jQuery中有这个函数:

$(function(){ 
$( ".unfocused" ).click(function ClickHeader () {
    $( this ).addClass( "focused" );
    $( this ).removeClass( "unfocused" );
    $(".header").not(this).addClass( "unfocused" );
    $(".header").not(this).removeClass( "focused" );
});
});

首次单击 标题时,它可以正常工作,但是当我尝试单击另一个未聚焦的标题时,该功能不再起作用。是因为它在文件上运行.ready?
谢谢你的帮助!

2 个答案:

答案 0 :(得分:3)

像这样改变:

  $( document ).on("click", ".unfocused", function() {
    $( this ).addClass( "focused" );
    $( this ).removeClass( "unfocused" );
    $(".header").not(this).addClass( "unfocused" );
    $(".header").not(this).removeClass( "focused" );
  });

这基本上在文档上注册事件。单击标题时,事件会冒泡到文档。在那里,验证了给定的选择器,并在需要时执行该功能。

答案 1 :(得分:1)

这是一个jsfiddle使用委托操作来处理你需要的事件。

http://jsfiddle.net/MN9Zt/2/

$("body").delegate(".unfocused", "click", function() {
    $(this).addClass("focused");
    $(this).removeClass("unfocused");
    $(".header").not(this).addClass("unfocused");
    $(".header").not(this).removeClass("focused");
});