jQuery一次又一次地调用该函数

时间:2016-01-17 07:00:53

标签: javascript jquery ajax dropdown

要显示 dropdown2 (可能是其他任何内容),我使用 dropdown1 onchange="getFilterOption()"

HTML (调用函数getFilterOption)

<select name="filter" data-userid="3" onchange="getFilterOption()">
    <option value="one">One</option>
    <option value="two">Two</option>
</select>";

jQuery (函数getFilterOption)

function getFilterOption() {
    $("#TargetFilterOption").append('<select id="filter_class1" name="filter1" data-privelesid1="".$priveles_id."" onchange="getFilter1(this.value)"><option value="">Filter</option><option value="All">All</option><option value="Yes">Yes</option><option value="No">No</option></select>');
};

问题

当我第一次使用下拉菜单时(例如,我选择One),程序会返回一些信息以及 dropdown2 (这就是我想要的)。但是当我选择AGAIN另一个选项(例如Two或其他)时,程序会再次返回 dropdown2 。所以我得到两个 dropdown2

如果只显示 dropdown2 ,我该怎么办?类似于:如果 dropdown2 已添加到页面,请不要调用函数getFilterOption。

2 个答案:

答案 0 :(得分:1)

使用html()功能代替append()html()替换以前的html,而append()在现有后添加新的html。

$("#TargetFilterOption").html('<select id="filter_class1" name="filter1" data-privelesid1="".$priveles_id."" onchange="getFilter1(this.value)"><option value="">Filter</option><option value="All">All</option><option value="Yes">Yes</option><option value="No">No</option></select>')

答案 1 :(得分:0)

如果你只想调用一次在jquery中使用一个函数

$('select').one('change',function getFilterOption() 
{
$("#TargetFilterOption").append('<select id="filter_class1" name="filter1" data-privelesid1="".$priveles_id."" onchange="getFilter1(this.value)"><option value="">Filter</option><option value="All">All</option><option value="Yes">Yes</option><option value="No">No</option></select>');
});