2011-12-22 50 views
0

我有一個DOM元素的數組。如果第四個被點擊,我想隱藏搜索框。如果任何其他人被點擊,我想顯示它。我將如何做到這一點?我目前有:如果點擊數組中的元素,我該如何觸發點擊事件?

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 2011-12-22 17:24:08

+0

第一次我看着這個它說1 == 3然後我點擊編輯,它說我== 3,它不說它被編輯了。我想我會瘋了 – dstarh 2011-12-22 17:24:47

+0

,我認爲如果(1 == 3)永遠不是真的,你的檢查就會搞砸了。我想你想我 – kasdega 2011-12-22 17:25:13

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 2011-12-22 17:23:29