最大调用堆栈大小 jQuery 版本 1.9.0
maximum call stack size jQuery version 1.9.0
我的问题涉及糟糕的编写代码,它可以工作,但它很混乱,无论如何,它只是出于实验目的,我试图实现一个"喜欢系统",用户点击一个按钮,与按钮关联的对象 ID 通过 ajax 发送到脚本,并使用用户的喜欢数据更新 mysql 表——这将是对象 ID。为此,我必须使用 php 来回显对象,并使用一个带有 javascript 函数的 like 按钮,如下所示:
for($i=0;$i<count($tempest);$i++)
{echo "<div class='posts'>
'"".$row2['screen_name']."'"
<img src='"".$row2['avatar']."'" width=50 height=50/><br>
added a new page to the magic title
'"".$row3['magic_name']."'"
<br>
<img src='"".$row1['p_name']."'">
<div id='"".$i."'">
<a href='Javascript:penda('"".$wholei."'",'"".$i."'")'> //this is the javascript function
<img name='mpe' src='images/like_outline.png'> //this is the like button
</a></div>
</div>";
}
我知道回显 html 是 w=错误的,但就像我说的,这只是为了好玩,当使用 jquery 版本 1.8.3 执行 ajax 请求时,它是:
function penda(item, itid) {
itid = itid + "";
$.ajax({
type: "POST",
url: "kumbatian.php",
data: {
penzi: item
},
success: function (ful) {
if (ful == 'win') document.getElementById('win').innerHTML += "YOU WIN!!";
}
});
document.getElementById(itid).innerHTML = "<a href='unlike()'><img src='images/like.png' /></a>";
}
我会得到以下错误,我正在使用 chrome:未捕获的范围错误:超出了最大调用堆栈大小,我认为这意味着被回显的"喜欢"的数量是附加到函数 penda 的许多人,数组$tempest的大小为 6,所以有六个喜欢按钮。当我升级到jquery版本1.9.0时,没有这样的错误,一切正常,所以这是我的问题:1.) 在 1.9.0 版中,需要以上述格式回显多少个按钮才能发生相同的错误?2.)有什么更好的方法可以将所有这些按钮附加到函数penda()上,以避免我遇到的错误?
编辑:根据要求,这是 HTML 输出:
<div id="0"><a href="Javasctipt:penda("mna4","0")"> <img name="mpe" src="images/like_outline.png"> </a></div>
<div id="1"><a href="Javasctipt:penda("mna4","1")"> <img name="mpe" src="images/like_outline.png"> </a></div>
<div id="2"><a href="Javasctipt:penda("mna4","2")"> <img name="mpe" src="images/like_outline.png"> </a></div>
<div id="4"><a href="Javasctipt:penda("mna4","4")"> <img name="mpe" src="images/like_outline.png"> </a></div>
<div id="5"><a href="Javasctipt:penda("mna4","5")"> <img name="mpe" src="images/like_outline.png"> </a></div>
<div id="6"><a href="Javasctipt:penda("mna4","6")"> <img name="mpe" src="images/like_outline.png"> </a></div>
就是这样。
使用 PHP 输出 HTML 并没有错。
然而,错的是你的结果。正如颜色编码清楚地显示的那样,您的引号没有正确转义。
试试这个:
... href="javascript:penda("mna4",0)" ...
通过使用 HTML 实体,可以避免引号之间的冲突。只要确保字符串值不是任何可能带有引号的东西,否则你需要更聪明。
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何从Java/scala调用js美化程序
- 如何调用这个匿名 JavaScript 函数
- 如何从模块链中调用函数.导出到节点中
- 我需要从php调用javascript或jquery
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- jQuery 在 AJAX 调用中发布版本
- 在Facebook图形中,使用Javascript的IE(所有版本)不支持API调用跨浏览器调用
- 如何在 mvc3 Web 应用程序的生产版本中删除 JS 日志记录调用
- 一个函数,它接受回调并创建只能调用一次的新版本的回调.Javascript
- PHP文件未使用$.post调用(我应该使用JQuery版本?)
- 从ajax调用获取字符串版本
- Ajax没有在framework7的构建版本中调用API
- 如何在Wordpress中排队并调用第二个JQuery版本
- 从特定的Js版本文件调用方法
- jQuery UI可拖动错误'不能在init'之前调用方法;,更新到1.10.1版本
- 在Angular版本1中,我如何测试我的范围$正在调用on侦听器
- 以编程方式调用 indexeddb 中的版本更改
- 最大调用堆栈大小 jQuery 版本 1.9.0