2

我正在使用 Chained Selects jQuery 插件,http://www.appelsiini.net/projects/chained

但我想在第二个选择元素中添加一个跳转菜单,即需要点击提交。如果我使用处理程序更改,则会在链式脚本上触发。

  $(function(){
      $("#spotCat").chained("#locationCat"); 
      $("#spotCat").change(function(){
        window.location.href = $(this).val();
      });
  });

我不确定解决问题的最佳方法?当您“单击”选择下拉箭头时触发单击事件?

4

2 回答 2

0

以下方式似乎对我有用,它之所以有效,是因为模糊事件不会被触发,除非它是焦点。更改事件没有给出。

$(function(){
      $("#spotCat").chained("#locationCat"); 
  $("#spotCat").change(function(){      
        this.blur()
  });
  $("#spotCat").blur(function(){
        if($(this).val().length !== 0) {
          window.location.href = $(this).val();
        }
  });

});

于 2013-01-28T17:24:45.913 回答
0

根据插件的功能方式(具体来说,当它填充依赖选项列表时它总是保留第一个项目被选中的方式),您只需向if匿名change事件处理函数添加一个:


if ($(this).find("option:selected").index() !== 0) {

演示(打开浏览器的开发人员工具并转到控制台以查看事件逻辑何时触发 - 或者更重要的是,当它不触发时):http: //jsfiddle.net/ywn6G/

if上下文中:


$(function(){
    $("#spotCat").chained("#locationCat"); 
    $("#spotCat").change(function(){
        if ($(this).find("option:selected").index() !== 0) {
            window.location.href = $(this).val();
        }
    });
 });
于 2013-01-26T06:21:02.633 回答