关于JS中function onclick()嵌套的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于JS中function onclick()嵌套的问题相关的知识,希望对你有一定的参考价值。
目前遇到了一个问题,在网页中有一个按钮,然后JS中的一个onclick事件,动态生成了k个div,以及按钮,k是一个变量,按钮命名为”btn“+k,现在要给这些按钮写onclick事件要怎么写啊,因为这个onclick函数名是个变量啊。。。求各路大神指导。。。
function btnclick1()
var arr = str.split(";");
for(var i=1;i<arr.length;i++)
var div=document.createElement("div");
div.innerhtml="对于步骤“"+arr[i]+"”是否为关键控制点的分析<input type='button' value='开始' id='btn"+i+"' name='btn"+i+"' onclick='btn"+i+"()'/>";
document.body.appendChild(div);
目前JS代码如上,onclick的方法应该怎么写啊。。。
$('#btn' + k).live("click", function()
// 这里是事件的处理
);追问
我把代码贴出来了,能告诉我怎么写吗,我是新手。。。
参考技术A #('#btn'+k).bind('click',function()函数主体);不知道你是不是使用了jQuery,上述方法是使用了jQuery的,如果是普通的,那么就直接使用addEvent方法追问
不太懂诶。。。
关于js闭包之小问题大错误
闭包是 JavaScript 开发的一个关键方面:匿名函数可以访问父级作用域的变量。
如果闭包的作用域中保存着一个 HTML 元素,则该元素无法被销毁。(下面代码来自高程)
刚看到一个关于闭包自己没注意到的地方,
function assgin() { var ele = document.getElementById(‘someEle‘); ele.onclick = function(){ alert(ele.id); } }
以上代码创建了一个作为 ele 元素事件处理程序的闭包,而这个闭包有创建了一个循环的引用,由于匿名函数保存了一个 assgin() 的活动对象的引用 ,因此无法减少对 ele 的引用次数 , 只要匿名函数存在,ele的引用次数至少是 1。我们可以稍微改写一下:
function assgin() { var ele = document.getElementById(‘someEle‘); var id = ele.id ele.onclick = function(){ alert(id); } ele = null; }
上面代码中,通过把 ele.id 的一个副本保存在一个变量中,并且在比保重引用该变量消除了循环引用,但是这样还不能解决内存泄露,闭包会引用包含函数的整个活动对象,而其中包含着 ele ,即使闭包不直接引用 ele ,包含函数的活动对象中也会保存 一个引用,因此需要把 ele 变量设置为 null ,这样就解除了对 DOM 对象的引用,减少其引用数,确保能正常回收。
翻看之前关于闭包的文章,确实学习不足 深入理解JS闭包(https://www.cnblogs.com/7qin/p/9740799.html)
摘自:https://segmentfault.com/a/1190000010477169
以上是关于关于JS中function onclick()嵌套的问题的主要内容,如果未能解决你的问题,请参考以下文章