我在使用jQuery时遇到了一些问题,我想将事件绑定到生成的div
myArray = [ {name : 'object1', clickMethod : function(){...}},
{name : 'object2', clickMethod : function(){...}},
{name : 'object3', clickMethod : function(){...}}
]
在我的循环中,我想做这样的事情:
for(var i = 0; i < myArray.length; i++) {
Utils.getGeneratedHtml(myArray[i])
}
//Utils.getGeneratedHtml
Utils.getGeneratedHtml = function(element,selector) {
var newE = $('<strong />',{id : element.name}).append(element.name);
newE.click(function(){
element.clickMethod()
})
newE.appendTo(selector);
}
然而,似乎没有考虑该方法。我应该使用课程吗?
答案 0 :(得分:1)
如果要使用内联函数,则需要在使用它之前声明它并使用var来定义它。注意 ”。” javascript中的变量名称不允许使用。您也没有将selector-parameter传递给getGeneratedHtml函数。参见示例:
var myArray = [{
name: 'object1',
clickMethod: function() {
alert("clicked");
}
}, {
name: 'object2',
clickMethod: function() {
alert("clicked");
}
}, {
name: 'object3',
clickMethod: function() {
alert("clicked");
}
}]
var getGeneratedHtml = function(element, selector) {
var newE = $('<strong />', {
id: element.name
}).append(element.name);
newE.click(function() {
element.clickMethod()
})
newE.appendTo(selector);
}
for (var i = 0; i < myArray.length; i++) {
getGeneratedHtml(myArray[i], "div")
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div></div>
答案 1 :(得分:0)
首先var new
无效并且应该抛出错误,因为new
是关键字。
您需要使用实时事件$('static-el').on('event', 'dynamic-el', function)
才能使代码正常工作。