2012-01-04 56 views
1

我有幾個HTML頁面。標題包含組合至極允許導航通過選擇不同的網頁:A,B,C,D選擇同一項目時從組合框中獲取事件

就目前而言,我使用:

combo.change(function(){ 
    window.location=path; 
}); 

但我想選擇一個即使已經被選中,這會對頁面進行一種重置。 我嘗試了事件模糊或點擊,但它不按我想要的方式工作。

我知道這不是一個偉大的網頁設計,但它是我的客戶的要求。

+0

你想運行取消選擇相同的代碼?如果是這樣,那麼你可以使用點擊而不是改變。 – FlabbyRabbit 2012-01-04 16:20:55

+0

最初總是將組合設置爲空白項目是否可行? – pimvdb 2012-01-04 16:22:14

+0

@FlabbyRabbit:我想在組合關閉時移動到A頁面。所以我點擊組合,然後點擊選項。我將檢查$('select#myCombo option')。click(function(){}) – 2012-01-04 17:22:41

回答

1
combo.children('option').click(function(){ 
window.location=path;  
}); 

小提琴:http://jsfiddle.net/z4H5R/1/

+0

不幸的是,它不適用於每個瀏覽器。它看起來像在Chrome上工作,但不是Chromium。它適用於FF 5+。 – 2012-01-10 09:24:14

+0

問題在哪裏?點擊事件正在工作嗎?你是否在內部處理程序中加入了警告 – 2012-01-10 09:31:08

+0

問題是我猜在嵌套的

0

儘管要求非常簡單,但沒有直接的解決方案。如果所有瀏覽器都支持選項標記的點擊和鍵事件,可以修復此問題。

所以我不得不建議的一個解決方案是使用dropkick - 一個jQuery下拉插件。

http://jamielottering.github.com/DropKick/

這個插件實際上隱藏選擇元件,並增加了一個代理下拉元件,其中實際選項li元素與標籤。即使新選擇的選項是當前選項,插件也會以觸發更改事件的方式進行編碼。你可以在第一個例子中看到它。它還支持關鍵導航。

+0

我認爲它可以工作,但是你不符合Web標準,這將無法正常工作。但是,如果您想在國家/地區組合框中添加標誌,它會很棒。我一直關注這個插件。 – 2012-01-05 10:18:49

+0

雅這不符合網絡標準。但它非常有用,它不會刪除原始選擇元素,只是隱藏它。 – Diode 2012-01-05 10:38:39

0

我發現jQuery的一個很好的解決方案: 與我的組合使用id = '路線' 真正的代碼是:

$("select#routes option").click(function(){ 
    console.log("Click on "+$("#routes").val()); 
    window.location= $("#routes").val(); 
}); 

$( 「選擇#路線選項」),點擊()意味着我點擊標籤中的DOM標籤。 它工作!

+0

但是,這會在所有瀏覽器中工作嗎?我認爲所有瀏覽器都不支持選項標籤的點擊事件。 – Diode 2012-01-05 10:31:27

相關問題