Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在for循环中定义函数_Javascript_Jquery_For Loop_Mathjax - Fatal编程技术网

Javascript 在for循环中定义函数

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

我准备了一份JSFIDLE来解释我的问题,如下所示:

因此,基本上,我尝试将一个处理程序附加到每个mathjax渲染的对象,以便在单击其中一个对象时,调用函数“jax_remove”

问题是,无论我单击哪个mathjax元素,它都会删除最后一个mathjax元素

这是我正在使用的函数:

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));

&&