[英]jQuery: toggling attribute within a toggleClass function
我試圖僅在可見時向搜索字段添加屬性,所以我將以下代碼用於:a)最初隱藏搜索表單,b)切換可見性,以及c)將屬性“自動對焦”添加或刪除到當表單被賦予類“焦點”(例如可見)時的表單輸入。 a)和b)的代碼按其應有的方式工作,c)是我對addAttr()的應有的設想,但是我並不真正了解Javascript,因此顯然它不起作用。 問題是:如何使它起作用?
$("#searchwdgt").hide();
$(function() {
$('#show_search').click(function() {
$('#show_search').toggleClass('active');
$('#searchwdgt').toggleClass('focus').slideToggle(400);
if($('#searchwdgt.focus')) {
$('#searchwdgt input').addAttr('autofocus');
} else {
$('#searchwdgt input').removeAttr('autofocus');
}
return false;
});
});
基本構造很簡單。 #show_search是用戶單擊以獲取搜索表單(#searchwdgt)的錨。 為了最大程度地減少用戶單擊的次數,最好在表單可見時將屬性“自動對焦”添加到輸入中(類為“ searchfield”,類型為“ search”,僅用於澄清),但用於UX它不能總是在適當的位置(由於表單最初是隱藏的,這與選項卡瀏覽很混亂)。 因此,非常歡迎任何可以幫助解決問題的建設性指針。 謝謝。
該功能應該是
.attr('autofocus','autofocus')
代替
.addAttr('autofocus');
它不起作用的原因是每個屬性都必須有一個值,即使它為null
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.