Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过Jquery动态更改菜单不工作_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 通过Jquery动态更改菜单不工作

Javascript 通过Jquery动态更改菜单不工作,javascript,jquery,html,css,Javascript,Jquery,Html,Css,在某一点上,基于切换开关的状态,我需要一个菜单,您可以有多个选项或一个选项。这些菜单位于Jquery选项卡中。如果我创建了一个新选项卡,则菜单已正确填充。如果我试图交换现有选项卡中的菜单,那么它就不起作用。首先,右边没有复选框(或者在不应该的时候它仍然存在),菜单在我单击某个东西之前不会完全更新 下面是每次我的切换开关被翻转时调用的代码 function setPicker(){ var currentTab = globalCurrentTab; var exchange =

在某一点上,基于切换开关的状态,我需要一个菜单,您可以有多个选项或一个选项。这些菜单位于Jquery选项卡中。如果我创建了一个新选项卡,则菜单已正确填充。如果我试图交换现有选项卡中的菜单,那么它就不起作用。首先,右边没有复选框(或者在不应该的时候它仍然存在),菜单在我单击某个东西之前不会完全更新

下面是每次我的切换开关被翻转时调用的代码

function setPicker(){
    var currentTab = globalCurrentTab;
    var exchange = currentTab.attr("exchange");
    var symbol = currentTab.attr("symbol");    
    if($("#flip-min option:selected").html() == "Graph") {  //no multiple attribute
        $('#select-choice-'+symbol+'-'+exchange).empty();
        $('#select-choice-'+symbol+'-'+exchange).removeAttr('multiple');
        $('#select-choice-'+symbol+'-'+exchange).append('<option>Choose Fields</option>');
        $('#select-choice-'+symbol+'-'+exchange).append('<option value=1>My option1</option>');
        $('#select-choice-'+symbol+'-'+exchange).append('<option value=2>My option2</option>');
        $('#select-choice-'+symbol+'-'+exchange).append('<option value=3>My option3</option>');


    }
    else { //yes multiple attribute
        $('#select-choice-'+symbol+'-'+exchange).find('option').remove().end();
        $('#select-choice-'+symbol+'-'+exchange).attr('multiple','multiple');
        $('#select-choice-'+symbol+'-'+exchange).append('<option>Choose Fields</option>');
        $('#select-choice-'+symbol+'-'+exchange).append('<option value=1>My option1</option>');
        $('#select-choice-'+symbol+'-'+exchange).append('<option value=2>My option2</option>');
        $('#select-choice-'+symbol+'-'+exchange).append('<option value=3>My option3</option>');
        $('#select-choice-'+symbol+'-'+exchange).append('<option value=4>My option4</option>');
    } 
}
函数setPicker(){
var currentTab=全局currentTab;
风险值交换=当前选项卡属性(“交换”);
var symbol=currentTab.attr(“symbol”);
if($(“#flip min option:selected”).html()=“Graph”){//无多个属性
$('#选择选项-'+symbol+'-'+exchange).empty();
$('#选择选项-'+symbol+'-'+exchange).removeAttr('multiple');
$('#选择选项-'+symbol+'-'+exchange).append('Choose Fields');
$('#选择选项-'+symbol+'-'+exchange).append('My option1');
$('#选择选项-'+symbol+'-'+exchange).append('My option2');
$('#选择选项-'+symbol+'-'+exchange).append('My option3');
}
else{//yes多属性
$('#选择选项-'+symbol+'-'+exchange).find('option').remove().end();
$('#选择选项-'+symbol+'-'+exchange).attr('multiple','multiple');
$('#选择选项-'+symbol+'-'+exchange).append('Choose Fields');
$('#选择选项-'+symbol+'-'+exchange).append('My option1');
$('#选择选项-'+symbol+'-'+exchange).append('My option2');
$('#选择选项-'+symbol+'-'+exchange).append('My option3');
$('#选择选项-'+symbol+'-'+exchange).append('My option4');
} 
}

为什么不直接使用单独的选择和隐藏不相关的内容呢?你能拿出一把小提琴来复制问题,这样我们就可以更仔细地看一下吗?顺便说一句,学习如何使用方法链接,这样你就不必在每一行重复
$('#选择-'+symbol+'-'+exchange)
。而且你不需要使用
.end()
如果您没有链接任何内容。@user3334690,这是一个非常好的建议,它的副作用是在切换选项卡时保留所选内容。如果你把它作为答案,我会记下来的。也要感谢其他人。