如何与两个select2有不同的链接

时间:2014-01-07 08:49:46

标签: jquery jquery-select2

在这个问题之后:How to have different link,当页面上有两个select2时,我的用法不一样。 见http://jsfiddle.net/7J8Ag/26/

function format(state) {
return state.text + "  ( " + state.id + " ) <i class='info' id='" + state.id + "'>link</i>";
 }

//>>>>>>>>>>>>>>>>     #select0
$("#select0").select2({
//  formatResult: format
});

$("#select0").on('select2-selecting', function (e) {
alert("ok " + e.val);
 });

  //>>>>>>>>>>>>>>>>>>     #select1
  $("#select1").select2({
  formatResult: format
});

// When selecting without using search box (no problem)
$("#select1").on('select2-selecting', function (e) {
alert("okkk " + e.val);
});

// link directly, without use search box of #select1 (no problem)
$("#select1").on('select2-open', function () {
$('.select2-results i').on('mouseup', function (e) {
    alert("link 1 " + e.target.id+ " >>>OK");
  });
});

// link after a search with search box of #select1. Problem : it's not ok when there are two select2 on the page
$(".select2-input").change(function () { //change or focus
if ($(".select2-input").val() != '') $('.select2-results i').on('mouseup', function (e)      {
      alert("link 2 " + e.target.id+ " >>>OK");
  //  window.open("http://obs43.fr/carte6-04.php?ci=" + e.target.id);
});
});

1 /当我评论“#select0”时,使用#select1就可以了:没问题。

2 /但是#select0后,#select1 搜索框搜索后#select1 的链接不正常。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

伊戈尔给了我解决方案:

  

if($(“。select2-input”)这个选择器不够具体。添加一个   select到select元素的类,然后将其复制到select中   容器,然后更改您的选择器以包含它。

请参阅http://jsfiddle.net/7J8Ag/29/

 $(".second .select2-input").change(function () { //change or focus
 if ($(".second .select2-input").val() != '') $('.select2-results i').on('mouseup',    function (e) {
      alert("link 2 " + e.target.id+ " >>>OK");
});

但是,有一个新问题: 当我在#select1的搜索框中时,我没有列表中相同字母的下划线。我理解函数格式()是这个问题的原因,但我不知道怎么回到这个“函数下划线”? CM