将click和onchange事件绑定在一起?

时间:2017-11-23 21:39:29

标签: javascript jquery html

我有一个触发每个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); } }); 中的选项,新选择会在someOptionsdiv中更新。但是,如何将新创建的ul按钮绑定到更改事件,因此在点击时,他们还可以取消选择radioul元素中的项目?

我在考虑使用select属性,我只是不知道如何将value按钮从radio绑定到#selectedOptions事件{ {1}}。

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
}