为什么在页面上单击的先前链接的文本显示在 AJAX 请求中
Why does text of previous links clicked on the page show up in an AJAX request?
这是一个引导模式,我把 AJAX 请求的结果放在
<div class="modal hide" id="myModal">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h3>Modal header</h3>
</div>
<div id="modal-body"></div>
<div class="modal-footer">
<a href="#" class="btn" data-dismiss="modal">Close</a>
</div>
</div>
javascript代码看起来像这样
<script type="text/javascript">
$('#myModal').modal('hide');
$('div.divBox a').click(function(){
var vendor = $(this).text();
console.log(vendor);
$('#myModal').on('show', function(){
$.ajax({
type: "GET",
url: "ip.php",
data: "id=" + vendor,
success: function(html){
$("#modal-body").html(html);
}
});
});
});
$('#myModal').on('hide', function () {
$("#modal-body").empty();
<?php unset($_GET); ?>;
})
</script>
该 ip.php 文件是
锚链接代码如下所示
<tbody>
<?php foreach ($rowarr as $k => $v) { ?>
<tr>
<td><?php echo $k ?></td>
<td>
<div class="divBox">
<a data-toggle="modal" href="#myModal"><?php echo $v; ?></a>
</div>
</td>
</tr>
<?php } ?>
</tbody>
$k是一个数字。$v是一个带有空格和特殊字符的名称。
控制台.log(供应商)向我显示了我在 CDT 中单击的链接的文本。但是模态的输出会发生变化。它会遍历我之前单击的所有链接文本,并不断替换它们,最后以最新的链接文本结束。
因此,如果按此顺序单击链接,控制台输出如下所示
Microsoft Corporation
IBM Corp
Hewlett-Packard
Apple
模态中的文本将以
Array ( [id] => Microsoft Corporation )
然后替换为
Array ( [id] => IBM Corp )
然后替换为
Array ( [id] => Hewlett-Packard)
然后以
Array ( [id] => Apple )
什么是跟踪页面上点击的链接?每次单击新链接时都需要重置它吗?
编辑:回应"你试过什么?
我在那里添加了$("#modal-body").empty();
,希望也许是我需要清除的模态主体。那不是。然后我想也许需要在关闭模态时重置 GET 变量,所以我添加了<?php unset($_GET); ?>;
.但是print_r($_GET)显示数组只包含一个数组元素,而不是之前单击的所有链接。所以我无法弄清楚点击的链接的历史记录还存储在哪里。
所以基本上,每次你点击一个divBox
链接,它都会向myModal
'show'事件添加一个新的处理程序。所以基本上在点击 5 个不同的divBox
链接后,myModal
的 show 事件将循环浏览 5 个不同的处理程序函数。
基本上,您需要在添加新处理程序之前删除先前添加的"show"处理程序。
$('#myModal').off('show');
在jQuery中删除事件处理程序的最佳方法?
相关文章:
- xmlhttp.responseText不显示文本
- 如何在MVC中使用jQuery在文本框旁边显示文本
- 根据页面的位置突出显示文本中的字符
- 当选择值x时,Javascript需要在正确的位置显示文本区域,从而循环通过具有选择选项的表单
- 操作javascript变量[HTML]以只显示文本
- 如何显示文本长度,即使它超过ng最大长度
- 如何在悬停时显示文本而不移动页面上的内容
- ASP.NET MVC,在文本框旁边显示文本
- 可单击滚动图像以显示文本框
- 使用鼠标悬停JavaScript/HTML显示文本
- 延迟高亮显示文本区域中的文本
- 选择“选择选项”时显示文本.怎么做
- 无法使用JavaScript在画布上显示文本
- 在不更改HTML源代码的情况下,在管理员TinyMCE编辑器中突出显示文本
- 将鼠标悬停在图像上时显示文本
- javascript:在for循环中使用settimeout来定期显示文本
- 一页主题搜索/用下一个按钮突出显示文本
- JavaScript 在更改选择时不显示文本区域
- 用于突出显示文本的JQuery/JavaScript插件
- 模式显示文本区域内容不是字符串