【发布时间】:2012-07-26 09:27:47
【问题描述】:
我正在动态创建一些 DOM 元素,例如,
var anchorElement = jQuery('<a />',{text:property.text});
var liElement = jQuery('<li />',{"class":"navlink_"+i,id:"navlink_"+i});
anchorElement.on('click',property.fnctn);
liElement.append(anchorElement);
parentID.append(liElement);
property 是一个 JSON 对象。
property.text 是我要放入锚元素的文本。 (工作正常)
我想将点击事件处理程序附加到该锚元素。 需要绑定到该元素的函数在 JSON 中指定,我们可以像访问它一样访问它
property.fnctn
以下行应该将事件处理程序绑定到锚元素。
anchorElement.on('click',property.fnctn);
这不起作用,所以我尝试将其转换为类似字符串,
anchorElement.on('click',property.fnctn.toString());
没有成功...
当我单击此链接时,控制台中会记录错误
该对象没有“应用”方法。 什么原因……???
我可以通过像
这样的轻微工作来让它工作anchorElement.attr('onclick',property.fnctn+"()");
以上语句有效,但我想知道为什么.on() API 不起作用。
谢谢 :) AÐitya。
【问题讨论】:
-
property.fnctn的值是多少? -
它是一个字符串...我已经定义了一些函数,各个函数的名称在 property.fnctn 我正在迭代 JSON 数组,所以每次都有新值.. 这是JSON 结构 {"item1":{"text":"Wallet","fnctn":"walletClick"}}, {"item2":{"text":"Pay Some","fnctn":"paySomeoneClick"}} , {"item3":{"text":"支付账单","fnctn":"payBillsClick"}}
-
一个包含什么的字符串?函数的名称还是函数的定义?
-
@AdityaParab:一个字符串?!不要使用字符串来连接事件处理程序,使用函数。
-
函数名称...抱歉,我不知道 shift + enter 换行 :)
标签: javascript jquery