我准备了一个JsFiddle来解释我的问题,这里是:http : //jsfiddle.net/3tAZ7/1/
因此,基本上,我试图将处理程序附加到每个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);
如果检查DOM,则可以看到每个渲染的mathjax都包含在跨度中,其ID类似于“ MathJax-Element-n-Frame”,其中n = 1,2,3,...所以这些是元素I将处理程序附加到它,并且似乎可以正常工作,证明是出现的两个初始警报。
因此,问题似乎出在“ jax_remove”函数的链接中。
你能帮我么?
为了降低复杂度,请考虑使用Function.prototype.bind()
。
$("#"+jax.inputID+"-Frame").click(jax_remove.bind(null, jax));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句