2011-12-22 5 views
0

私はDOM要素の配列を持っています。 4番目がクリックされた場合は、検索ボックスを非表示にします。他のいずれかがクリックされた場合、私はそれを表示したいと思います。どうすればいい?現在私は持っています:配列の要素がクリックされた場合、クリックイベントを発生させるにはどうすればよいですか?

var app = { 
    config: { 
     tabs: [$("#tab1"), $("#tab2"), $("#tab3"), $("#tab4")], 
     search: $("#search") 
    }, 
    showHideSearch: function() { 
     // Here I need to test if the fourth tab was clicked on then hide(); 
     // else if tabs one through three were clicked show 
    } 
} 
app.showHideSearch(); 

何か助けていただければ幸いです。ありがとうございました。

答えて

2
$.each(app.config.tabs, function(i, v) { 
    v.bind('click', function(){ 
    $('#searchbox').show(); 
    if(i==3) 
     $('#searchbox').hide(); 
    }); 
}); 
+0

show()とhide()は、css()を使ってディスプレイを設定するのではなく、 – kasdega

+0

で初めて表示されます。これは1 == 3と言って編集をクリックして、i == 3それが編集されたと言う。私は夢中になると思う – dstarh

+0

と私はあなたのチェックは、(1 == 3)が決して真実でない場合は、混乱していると思う。私はあなたが私が欲しいと思う – kasdega

4

これを行うための配列は必要ありません。

$("#tab4").click(function() { 
    app.config.search.hide(); 
    // $("#search").hide(); 
}); 
$("#tab1, #tab2, #tab3").click(function() { 
    app.config.search.show(); 
    // $("#search").show(); 
}); 
+2

+1また、@JesseAtkinsonはさらに、あなたが表示または非表示にする要素にクラスを適用することを検討することをお勧めします。セレクタをクラス名に変更できます。 – Craig

関連する問題