我有从数据库中提取的每个客户的发票链接。
foreach ($customerTables as $value) {
<td><a id='show' href='invoice.php?invoice=$value->id'>Invoice</a></td>
}
所以当用户点击发票链接时,我想显示加载页面如下
<p><i class="fa fa-cog fa-spin fa-3x fa-fw"></i>
<span class="sr-only">Loading...</span></p>
我使用的javascript是:
$(document).ready(function(){
$("p").hide();
});
$("#show").click(function(){
$("p").show();
});
但它仅适用于第一行发票链接。我怎样才能使这个工作对每一串发票都有效?谢谢你的帮助!
答案 0 :(得分:1)
那是因为你使用的是id而不是类。 Id应该是唯一的,所以jquery专注于第一次出现。
尝试替换
attribute_before_last_save
通过
id='show'
和
class='show'
通过
$("#show").click(function(){
答案 1 :(得分:0)
您无法在单页中多次使用相同的ID,因此请将其替换为类,如下所示
foreach ($customerTables as $value) {
<td><a class='show' href='invoice.php?invoice=$value->id'>Invoice</a></td>
}
还需要为单击链接时需要显示/隐藏的p标记提供class或id。因为如果你直接隐藏/显示p标签,它将影响该页面内的所有其他p标签。所以你可以使用类似下面的内容,
<p class="loader"><i class="fa fa-cog fa-spin fa-3x fa-fw"></i>
<span class="sr-only">Loading...</span></p>
然后你可以像这样编写你的js代码,
$(document).ready(function(){
$("p.loader").hide();
});
$(".show").click(function(){
$("p.loader").show();
});