2012-01-04 57 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

相关问题