Javascript 在for循环中定义函数
我准备了一份JSFIDLE来解释我的问题,如下所示: 因此,基本上,我尝试将一个处理程序附加到每个mathjax渲染的对象,以便在单击其中一个对象时,调用函数“jax_remove” 问题是,无论我单击哪个mathjax元素,它都会删除最后一个mathjax元素 这是我正在使用的函数:Javascript 在for循环中定义函数,javascript,jquery,for-loop,mathjax,Javascript,Jquery,For Loop,Mathjax,我准备了一份JSFIDLE来解释我的问题,如下所示: 因此,基本上,我尝试将一个处理程序附加到每个mathjax渲染的对象,以便在单击其中一个对象时,调用函数“jax_remove” 问题是,无论我单击哪个mathjax元素,它都会删除最后一个mathjax元素 这是我正在使用的函数: setTimeout(function() { //timeout is necessary for mathjax loading jaxes = MathJax.Hub.getAllJax("math
setTimeout(function() { //timeout is necessary for mathjax loading
jaxes = MathJax.Hub.getAllJax("math");
for(var i = 0; i < jaxes.length; i++) {
var jax=jaxes[i];
alert(jax.inputID);
$("#"+jax.inputID+"-Frame").click(function() {
jax_remove(jax);
});
};
},1250);
setTimeout(函数(){//timeout对于mathjax加载是必需的
jaxes=MathJax.Hub.getAllJax(“数学”);
for(var i=0;i
如果检查DOM,可以看到每个渲染的mathjax都包含在一个具有类似“mathjax-Element-n-Frame”id的范围中,其中n=1,2,3,。。。这些就是我附加在处理程序上的元素,它似乎是有效的,证据是两个最初发出的警报
所以问题似乎出在“jax_remove”函数的链接上
你能帮我吗?换衣服:
$("#"+jax.inputID+"-Frame").click(function() {
jax_remove(jax);
});
致:
有关说明,请查看@Arun p Johny的链接。更改:
$("#"+jax.inputID+"-Frame").click(function() {
jax_remove(jax);
});
致:
为了解释,请看@ Arun P Johny的链接。 < p>为了减少复杂性,考虑使用.< /P>
$(“#”+jax.inputID+“-Frame”)。单击(jax_remove.bind(null,jax));
< P>为了减少复杂性,考虑使用.< /P>
$(“#”+jax.inputID+“-Frame”)。单击(jax_remove.bind(null,jax));
&&