好的,所以我假設通過說「多選列表框」你的意思是<select multiple>
元素。
然後在這裏我們去...
你提到不需要任何操作的第一個行爲,因爲當你單擊另一個選項,而不CTRL (or CMD in Mac)
按壓從這種選擇的默認動作是取消選擇所有選項。
對於第二個,您必須監聽select
元素的更改,然後驗證是否選擇了AllCities
選項以及是否有其他options
已選中。
因此,代碼會我想......
你有HTML:
<select id="cities" multiple>
<option value="All" selected>All Cities</option>
<option value="A">City A</option>
<option value="B">City B</option>
<option value="C">City C</option>
</select>
和腳本偵聽更改,如果選項All
處於選中狀態,如果有選擇的另一選項太:
$('#cities').on('change',function(){
var it = $(this);
if(it.val().indexOf("All") > -1 && it.val().length > 1){
$('option[value="All"]',it).prop('selected',false);
}
});
Here is a fiddle以顯示其行爲。
顯示試試看吧 –
看到你的標記和腳本,在jsFiddle中說出來會很有幫助。如果沒有任何代碼,我可以告訴你的最佳答案是「將正確的事件添加到正確的元素中」。這是所有人都告訴,不是很有幫助。 –