将所选元素的自引用传递给事件中的函数

时间:2013-06-21 16:28:22

标签: jquery

我不想两次调用$('#selecteShuffle')

function sortSelect(select) {
  select.html($('select option').sort(function(a, b){
      return a.text == b.text ? 0 : a.text < b.text ? -1 : 1;
  }));
}

$('#selectShuffle').change(sortSelect($('#selectShuffle')));

1 个答案:

答案 0 :(得分:2)

这样做 -

$('#selectShuffle').change(sortSelect);

并在您的功能中 - this引用您的选择

function sortSelect(e) {
  $(this).html($('select option').sort(function(a, b){
      return a.text == b.text ? 0 : a.text < b.text ? -1 : 1;
  }));
}

或者您也可以这样做 - (而不更改您当前的功能设置

function sortSelect(select) {
  select.html($('select option').sort(function(a, b){
      return a.text == b.text ? 0 : a.text < b.text ? -1 : 1;
  }));
}

$('#selectShuffle').change(function(){
   sortSelect($(this))
});