我有一个触发每个change
事件的函数,这意味着每次从radio
列表中选择select
按钮时,空数组会更新并以两个不同的{{{}}显示内容{1}}元素:一个是HTML
,另一个是div
。在ul
中,我想显示其他div
按钮,如果点击该按钮,还应取消选择主列表和radio
中选定的radio
按钮。
继承人HTML:
ul
继承人JS:
<select id="selectionContainer">
<option value="Brown">Brown</option>
<option value="Nicole">Nicole</option>
<option value="Jack">Jack</option>
</select>
<div id="selectedOptions">
// Selected items from `someOptions` will be displayed here as divs with classes
</div>
<div id="selectedOptionsList">
// Selected items from `someOptions` will be displayed here as list items
</div>
现在,一切似乎都运行良好,如果我选择/取消选择$(document).ready(function(){
$('#selectionContainer').multiselect({
onChange: function(element, checked) {
var arr =[];
var selectionDiv = $('#selectedOptions').empty();
$('#selectionContainer').find("option:selected").each(function(){
arr.push($(this).html());
});
for(var i in arr) {
var selectedOption = '<div>' + arr[i] + '<input type="radio" value="' + arr[i] + '" /></div>');
var optionForList ="<option value='"+ arr[i] + "'>" + arr[i] + "</option>";
$(selectionDiv).append(selectedOption);
$('#selectedOptionsList').append(optionForList);
}
});
中的选项,新选择会在someOptions
和div
中更新。但是,如何将新创建的ul
按钮绑定到更改事件,因此在点击时,他们还可以取消选择radio
和ul
元素中的项目?
我在考虑使用select
属性,我只是不知道如何将value
按钮从radio
绑定到#selectedOptions
事件{ {1}}。
答案 0 :(得分:0)
我认为这一行存在问题:
var selectionDiv = $('#selectedOptions').empty();
在这种情况下,selectionDiv未定义。我宁愿这样做:
$('#selectedOptions').empty();
然后,您可以创建DOM对象并绑定所需的事件,而不是创建字符串变量。这样的事可能适合你:
for(var i in arr) {
var selectedOption = document.createElement('input');
selectedOption.type="radio";
selectedOption.value = arr[i];
selectedOption.addEventListener("change", myfunc);
var containerDiv = document.createElement('div');
$(containerDiv).append(selectedOption);
$('#selectedOptions').append(containerDiv);
$('#selectedOptionsList').append(optionForList);
}
function myFunc(){
//Whatever you need to do
}