jquery选择:如何点击一个特殊选项

时间:2014-06-03 14:39:46

标签: jquery select onclick options jquery-chosen

我正在使用jquery来创建一个多选框。 我的问题是,第三个选项必须打开一个新窗口,不能选择。 (稍后用户可以在此窗口中创建新选项)

有人能帮我实现这个吗? 我的想法是使用$('.chosen-select').on('change'...)来删除列表中的所选项目。 但我不知道如何

<div class="wrapper">
  <select data-placeholder="options" style="width:350px;" multiple class="chosen-select">
     <option value=""></option>
     <option value="1">1</option>
     <option value="2">2</option>
     <option value="3" onClick="openPopup()">3</option>
 </select>
</div>
谢谢你!

3 个答案:

答案 0 :(得分:1)

如果我理解正确,这应该可以解决您的问题:

$('.chosen-select').on('mouseup', function(){ // on finish the click on any part of the multiselect
   if($(this).val().indexOf('3') !== -1){ // if value has the 3 selected [1,3]
      openPopup(); // open the popup
   }
});

但如果你想让它只在选项3上工作,你可以这样做

$('.chosen-select').on('mouseup','.openPopup', function(){ // on finish the click on option of class openPopup
   if($(this).val() == 3){
      openPopup(); // open the popup
   }
});

至于删除:

$('.chosen-select').on('mouseup','.openPopup', function(){ // on finish the click on option of class openPopup
   if($(this).val() == 3){
      openPopup($(this)); // open the popup
   }
});

function openPopup(obj){
    //Popup functions...
    obj.remove();
}

这应该可以解决您的问题

答案 1 :(得分:1)

您可以尝试这样的事情:

$('option[value="3"]').click(function(e){

    // The line below is just for demonstration purposes
    // you could replace with your openPopup() function

    window.open('http://www.google.com','_blank');

    // Remove the element
    $(this).remove();

    e.preventDefault(); 
});

这是一个显示行动中的行为的小提琴:http://jsfiddle.net/95xS5/2/

答案 2 :(得分:1)

我已经解决了它:

 $('.chosen-select').chosen().change( function() {
      var selectedValue = $(this).find('option:selected').val();
      if(selectedValue=='3'){
        $(this).find('option:selected').prop("selected",false);
        openPopup();
      }
      $('.chosen-select').trigger("chosen:updated");
    });