jQuery 一次又一次地调用函数
jQuery keeps calling the function again and again
为了显示 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>');
};
问题
当我第一次使用下拉列表时(例如,我选择了一个),程序 return 一些信息以及 dropdown2(这就是我想)。但是当我再次选择另一个选项(例如两个或其他)程序 return dropdown2 再次。所以我得到两个 dropdown2.
我需要做什么才能只显示一次 dropdown2。类似于:如果 dropdown2 已经添加到页面,请不要调用函数 getFilterOption。
使用 html()
函数代替 append()
。 html()
替换之前的 html,而 append()
在现有的 html 之后追加新的 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>')
如果您只想调用一次,请使用 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>');
});
为了显示 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>');
};
问题
当我第一次使用下拉列表时(例如,我选择了一个),程序 return 一些信息以及 dropdown2(这就是我想)。但是当我再次选择另一个选项(例如两个或其他)程序 return dropdown2 再次。所以我得到两个 dropdown2.
我需要做什么才能只显示一次 dropdown2。类似于:如果 dropdown2 已经添加到页面,请不要调用函数 getFilterOption。
使用 html()
函数代替 append()
。 html()
替换之前的 html,而 append()
在现有的 html 之后追加新的 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>')
如果您只想调用一次,请使用 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>');
});