2013-10-26 61 views
1

我使用此代碼是否有不同的方式來刪除jQuery中的類?

$(".textForm input").focus(function(){ 
    $(this).val(""); 
    $(".card").find('.'+this.id).addClass('focus'); 
}).blur(function(){ 
    $(".card").find('.'+this.id).removeClass('focus'); 
}); 

要添加.focus類時input box的重點是,但每當我點擊任何地方,是不是input box類被刪除。有沒有這樣的方法,只有在點擊另一個input box時才能移除課程? 我不確定我是否正確地問了我的問題,希望有人能理解我。 在此先感謝。

回答

1
$('input').on('click',function(){ 
    $('.focus').removeClass('focus'); 
    $(this).addClass('focus') 
}) 

以上代碼確保你從一個元素中刪除「專注」類,只有當您添加的另一元件。

+0

這工作得很好!你能解釋一下我們如何從自身中移除'.focus'類嗎?它有點讓我困惑。但它的工作表示感謝。 –

+0

在一個事件處理程序中,'this'被設置爲該事件被觸發的對象,所以'$(this).doStuff()'對你點擊的東西做了些什麼。 – duskwuff

+0

哦,所以'this'是指在這種情況下輸入的權利?好的謝謝! –

1

:輸入選擇所有的輸入

$(":input").click(function(){ 

$(":input").removeClass('focus'); 

}); 

WORKING DEMO

+0

它沒有工作。我刪除了'.blur',並在那裏添加了代碼,但沒有奏效。可能沒有這樣做。 –

+0

使用此代碼作爲單獨的代碼 – underscore

+0

更新我的代碼 – underscore

0

你試試這個:

$("input.textForm").focus(function(){ 
    $(this).val(""); 
    $(".card").find('.'+$(this).attr('id')).addClass('focus'); 
}).blur(function(){ 
    $(".card").find('.'+$(this).attr('id')).removeClass('focus'); 
}); 
相關問題