我有幾個HTML頁面。標題包含組合至極允許導航通過選擇不同的網頁:A,B,C,D選擇同一項目時從組合框中獲取事件
就目前而言,我使用:
combo.change(function(){
window.location=path;
});
但我想選擇一個即使已經被選中,這會對頁面進行一種重置。 我嘗試了事件模糊或點擊,但它不按我想要的方式工作。
我知道這不是一個偉大的網頁設計,但它是我的客戶的要求。
我有幾個HTML頁面。標題包含組合至極允許導航通過選擇不同的網頁:A,B,C,D選擇同一項目時從組合框中獲取事件
就目前而言,我使用:
combo.change(function(){
window.location=path;
});
但我想選擇一個即使已經被選中,這會對頁面進行一種重置。 我嘗試了事件模糊或點擊,但它不按我想要的方式工作。
我知道這不是一個偉大的網頁設計,但它是我的客戶的要求。
combo.children('option').click(function(){
window.location=path;
});
不幸的是,它不適用於每個瀏覽器。它看起來像在Chrome上工作,但不是Chromium。它適用於FF 5+。 – 2012-01-10 09:24:14
問題在哪裏?點擊事件正在工作嗎?你是否在內部處理程序中加入了警告 – 2012-01-10 09:31:08
問題是我猜在嵌套的
儘管要求非常簡單,但沒有直接的解決方案。如果所有瀏覽器都支持選項標記的點擊和鍵事件,可以修復此問題。
所以我不得不建議的一個解決方案是使用dropkick - 一個jQuery下拉插件。
http://jamielottering.github.com/DropKick/
這個插件實際上隱藏選擇元件,並增加了一個代理下拉元件,其中實際選項li元素與標籤。即使新選擇的選項是當前選項,插件也會以觸發更改事件的方式進行編碼。你可以在第一個例子中看到它。它還支持關鍵導航。
我認爲它可以工作,但是你不符合Web標準,這將無法正常工作。但是,如果您想在國家/地區組合框中添加標誌,它會很棒。我一直關注這個插件。 – 2012-01-05 10:18:49
雅這不符合網絡標準。但它非常有用,它不會刪除原始選擇元素,只是隱藏它。 – Diode 2012-01-05 10:38:39
我發現jQuery的一個很好的解決方案: 與我的組合使用id = '路線' 真正的代碼是:
$("select#routes option").click(function(){
console.log("Click on "+$("#routes").val());
window.location= $("#routes").val();
});
的$( 「選擇#路線選項」),點擊()意味着我點擊標籤中的DOM標籤。 它工作!
但是,這會在所有瀏覽器中工作嗎?我認爲所有瀏覽器都不支持選項標籤的點擊事件。 – Diode 2012-01-05 10:31:27
你想運行取消選擇相同的代碼?如果是這樣,那麼你可以使用點擊而不是改變。 – FlabbyRabbit 2012-01-04 16:20:55
最初總是將組合設置爲空白項目是否可行? – pimvdb 2012-01-04 16:22:14
@FlabbyRabbit:我想在組合關閉時移動到A頁面。所以我點擊組合,然後點擊選項。我將檢查$('select#myCombo option')。click(function(){}) – 2012-01-04 17:22:41