启动组件下拉项Javascript更改类中的错误单击

启动组件下拉项Javascript更改类中的错误单击,javascript,twitter-bootstrap,Javascript,Twitter Bootstrap,我有一个引导按钮组件,它有一个默认按钮设置为“NoPriority”。当点击这个按钮时,您可以选择不同的优先级,例如“高”、“中”、“低”和“服务请求”。当您选择一个选项时,例如“High”,它会将文本和类更改为关联的文本和类 例如,high按钮是btn btn danger btn sm类下拉开关 当你点击“High”按钮时,你会在下拉列表中看到另一组项目,我想确保“NoPriority”不在这个列表中,因为一旦选择了优先级,它就不能更改回“NoPriority” 有人能告诉我哪里出了问题吗

我有一个引导按钮组件,它有一个默认按钮设置为“NoPriority”。当点击这个按钮时,您可以选择不同的优先级,例如“高”、“中”、“低”和“服务请求”。当您选择一个选项时,例如“High”,它会将文本和类更改为关联的文本和类

例如,high按钮是btn btn danger btn sm类下拉开关

当你点击“High”按钮时,你会在下拉列表中看到另一组项目,我想确保“NoPriority”不在这个列表中,因为一旦选择了优先级,它就不能更改回“NoPriority”

有人能告诉我哪里出了问题吗

HTML:

Javascript:

    $('a[name=priority]').on('click',function() {
    const btn = $(this).parent().parent().parent().find('button');
  const selectedPrior = $(this);
  switchPriority(btn, selectedPrior);
  switchBtnStyle(btn);
});

function switchPriority(currentPriorBtn, newPriorA){
    const btnText = currentPriorBtn.text();
  const aText = newPriorA.text();
  newPriorA.text(btnText);
  currentPriorBtn.text(aText);
}

function switchBtnStyle(btn){
    const btnText = btn.text();
  btn.removeClass();
  switch(btnText){
    case 'High':
    btn.addClass('btn btn-danger btn-sm dropdown-toggle');
    break;
    case 'Low':
    btn.addClass('btn btn-success btn-sm dropdown-toggle');
    break;
    case 'Medium':
    btn.addClass('btn btn-warning btn-sm dropdown-toggle');
    break;
    case 'ServiceRequest':
    btn.addClass('btn btn-info btn-sm dropdown-toggle');
    break;
  }
}

jfiddle如果有用:

如果要将其从列表中删除,请在更改后执行此操作:

$('a[name=priority]').on('click',function() {
  const btn = $(this).parent().parent().parent().find('button');
  const selectedPrior = $(this);

  switchPriority(btn, selectedPrior);
  switchBtnStyle(btn);

  // remove it after switching.
  if (selectedPrior.text() === 'NoPriority') {
    selectedPrior.remove();
  }
});
或者作为插件

(函数($){
$.fn.PriorityBtn=函数(){
var事件=函数(){
$('a[name=priority]')。在('click',switchBtn)上;
};
var switchBtn=函数(){
让btn=$(this.parent().parent().parent().find('button');
让SelectedPrevior=$(此项);
切换优先级(btn,选择优先级);
交换机样式(btn);
如果(已选择Previous.text()=='NoPriority'){
选择Previor.remove();
}
};
var开关优先级=功能(currentPriorBtn,newPriorA){
const btnText=currentPriorBtn.text();
const-aText=newPriorA.text();
newPriorA.text(btnText);
currentPriorBtn.text(aText);
};
var switchBtnStyle=功能(btn){
常量btnText=btn.text();
btn.removeClass();
交换机(btnText){
案例“高”:
btn.addClass(“btn btn危险btn sm下拉开关”);
打破
案例“低”:
btn.addClass(“btn btn成功btn sm下拉切换”);
打破
案例“中等”:
btn.addClass(“btn btn警告btn sm下拉切换”);
打破
案例“服务请求”:
btn.addClass('btn btn info btn sm下拉开关');
打破
}
};
事件();
归还这个;
};
}(jQuery));
//附加到所有按钮
$('.priority btn').PriorityBtn()

不优先
  • 中等
  • 服务请求
不优先
  • 中等
  • 服务请求
不优先
  • 中等
  • 服务请求
不优先
  • 中等
  • 服务请求
    $('a[name=priority]').on('click',function() {
    const btn = $(this).parent().parent().parent().find('button');
  const selectedPrior = $(this);
  switchPriority(btn, selectedPrior);
  switchBtnStyle(btn);
});

function switchPriority(currentPriorBtn, newPriorA){
    const btnText = currentPriorBtn.text();
  const aText = newPriorA.text();
  newPriorA.text(btnText);
  currentPriorBtn.text(aText);
}

function switchBtnStyle(btn){
    const btnText = btn.text();
  btn.removeClass();
  switch(btnText){
    case 'High':
    btn.addClass('btn btn-danger btn-sm dropdown-toggle');
    break;
    case 'Low':
    btn.addClass('btn btn-success btn-sm dropdown-toggle');
    break;
    case 'Medium':
    btn.addClass('btn btn-warning btn-sm dropdown-toggle');
    break;
    case 'ServiceRequest':
    btn.addClass('btn btn-info btn-sm dropdown-toggle');
    break;
  }
}
$('a[name=priority]').on('click',function() {
  const btn = $(this).parent().parent().parent().find('button');
  const selectedPrior = $(this);

  switchPriority(btn, selectedPrior);
  switchBtnStyle(btn);

  // remove it after switching.
  if (selectedPrior.text() === 'NoPriority') {
    selectedPrior.remove();
  }
});