Javascript 选择同一项时从组合框中获取事件

Javascript 选择同一项时从组合框中获取事件,javascript,jquery,html,Javascript,Jquery,Html,我有一些HTML页面。标题包含一个组合,允许通过选择不同的页面进行导航:a、B、C、D 目前,我使用: combo.change(function(){ window.location=path; }); 但我想选择A,即使A已经被选中,这会使页面复位。我尝试了事件模糊或点击,但它不是我想要的工作方式 我知道这不是一个很好的网页设计,但这是我客户的要求。尽管要求很简单,但没有直接的解决方案。如果所有浏览器都支持选项标记的单击和键事件,则可以修复此问题 所以我建议的一个解决方案是使用drop

我有一些HTML页面。标题包含一个组合,允许通过选择不同的页面进行导航:a、B、C、D

目前,我使用:

combo.change(function(){
  window.location=path;
});
但我想选择A,即使A已经被选中,这会使页面复位。我尝试了事件模糊或点击,但它不是我想要的工作方式


我知道这不是一个很好的网页设计,但这是我客户的要求。

尽管要求很简单,但没有直接的解决方案。如果所有浏览器都支持选项标记的单击和键事件,则可以修复此问题

所以我建议的一个解决方案是使用dropkick——一个jQuery下拉插件


这个插件实际上隐藏了select元素并添加了一个proxy下拉元素,其中的选项实际上是带有标记的li元素。插件的编码方式是,即使新选择的选项是当前选项,它也会触发更改事件。您可以在第一个示例中看到它。它还支持键导航

即使要求非常简单,也没有直接的解决方案。如果所有浏览器都支持选项标记的单击和键事件,则可以修复此问题

所以我建议的一个解决方案是使用dropkick——一个jQuery下拉插件


这个插件实际上隐藏了select元素并添加了一个proxy下拉元素,其中的选项实际上是带有标记的li元素。插件的编码方式是,即使新选择的选项是当前选项,它也会触发更改事件。您可以在第一个示例中看到它。它还支持键导航

我用Jquery找到了一个不错的解决方案: 我的id='route'组合的实际代码是:

$("select#routes option").click(function(){
  console.log("Click on "+$("#routes").val());
  window.location= $("#routes").val();
});
$(“选择#路由选项”).click()意味着我在标记中单击DOM标记。
而且它有效

我用Jquery找到了一个不错的解决方案:
combo.children('option').click(function(){
 window.location=path;    
});
我的id='route'组合的实际代码是:

$("select#routes option").click(function(){
  console.log("Click on "+$("#routes").val());
  window.location= $("#routes").val();
});
$(“选择#路由选项”).click()意味着我在标记中单击DOM标记。 而且它有效

combo.children('option').click(function(){
 window.location=path;    
});
小提琴:



fiddle:

是否要在取消选择时运行相同的代码?如果是这样的话,您可以使用单击而不是更改。最初总是将组合设置为空白项目是否可行?@flabbyrabit:我想在组合关闭时移动到a页面。所以我点击组合,然后点击选项。我将检查$('select#myCombo option')之类的内容。单击(function(){})@pimvdb:no,因为当前页面上信息中的组合。这就是我最初所做的,但客户端并不容易。我想我现在了解了您要查找的内容,并且
$('select#myCombo option')。单击(function(){})
应该对您有用,请参阅:。。。一个缩进是,如果用户点击选择框并使用箭头键,它将不起作用。是否要在取消选择时运行相同的代码?如果是这样的话,您可以使用单击而不是更改。最初总是将组合设置为空白项目是否可行?@flabbyrabit:我想在组合关闭时移动到a页面。所以我点击组合,然后点击选项。我将检查$('select#myCombo option')之类的内容。单击(function(){})@pimvdb:no,因为当前页面上信息中的组合。这就是我最初所做的,但客户端并不容易。我想我现在了解了您要查找的内容,并且
$('select#myCombo option')。单击(function(){})
应该对您有用,请参阅:。。。退一步说,如果用户点击选择框并使用箭头键,它将不起作用。我想它会起作用,但你脱离了网络标准。但是,当您想在国家/地区组合框中添加国旗时,它会非常棒。我一直在关注这个插件。是的,这不符合网络标准。但是它非常有用,它不会删除原始的select元素,只是隐藏了它。我想它是可行的,但是你不符合web标准。但是,当您想在国家/地区组合框中添加国旗时,它会非常棒。我一直在关注这个插件。是的,这不符合网络标准。但是它非常有用,它不会删除原始的select元素,只是隐藏了它。但是这在所有浏览器中都有效吗?我认为并非所有浏览器都支持选项标签的点击事件。但这在所有浏览器中都有效吗?我认为并非所有浏览器都支持选项标签的点击事件。不幸的是,它不能在所有浏览器上工作。它看起来像是在铬上工作,但不是铬。它与FF 5+一起工作。问题出在哪里??单击事件是否正常工作???您是否在处理程序中放置了警报?我想问题在于嵌套中没有在旧浏览器上链接的事件。不幸的是,它不能在所有浏览器上工作。它看起来像是在铬上工作,但不是铬。它与FF 5+一起工作。问题出在哪里??单击事件是否正常工作???您是否在处理程序中放置了警报?我想问题在于嵌套中没有在旧浏览器上链接的事件。