问题:在单击按钮时创建一个元素,然后将单击事件附加到新元素。
我已经多次遇到这个问题,我似乎总能找到解决方法,但从未找到问题的根源。看一下代码:
HTML:
<select>
<option>567</option>
<option>789</option>
</select>
<input id="Add" value="Add" type="button"> <input id="remove" value="Remove" type="button">
<div id="container">
<span class="item">123</span>
<br/>
<span class="item">456</span>
<br/>
</div>
JavaScript
$(".item").click(function () {
if ($("#container span").hasClass("selected")) {
$(".selected").removeClass("selected");
}
$(this).addClass("selected");
});
$("add").click(function() {
//Finds Selected option from the Select
var newSpan = document.createElement("SPAN");
newSpan.innerHTML = choice;//Value from Option
newSpan.className = "item";
var divList = $("#container");
divList.appendChild(newSpan);//I've tried using Jquery's Add method with no success
//Deletes the selected option from the select
})
以下是我已经尝试过的一些方法:
- 标准 Jquery 单击“项目”类的元素
- 包括使用 live() 和 on() 方法
- 在元素创建后设置内联 onclick 事件
- #Container 上使用 Bind 方法绑定单击事件处理程序的 Jquery 更改事件
警告:我无法创建另一个选择列表,因为我们正在使用 MVC,并且在从列表框中检索多个值时遇到了问题。因此,生成了一些隐藏元素,这些元素实际上与 MVC 相关联。