【发布时间】:2012-10-11 19:33:22
【问题描述】:
我有一个由 php 生成的 html 组成的导航栏,如下所示:
<ul>
<div class="container"><button type="button" name="1" class="delButton" alt="Delete"></button></div>
<a href="/" alt="Home">Home</a>
<div class="container"><button type="button" name="2" class="delButton" alt="Delete"></button></div>
<a href="/" alt="Events">Events</a>
<div class="container"><button type="button" name="3" class="delButton" alt="Delete"></button></div>
<a href="/" alt="Calendar">Calendar</a>
<div class="container"><button type="button" name="4" class="delButton" alt="Delete"></button></div>
<a href="/" alt="About Us">About Us</a>
</ul>
每个集合都包含一个删除按钮和一个链接。根据 mySQL 数据库,按钮的 name 属性包含其后链接的唯一 ID。
当点击相应的删除按钮时,我正在使用以下 jQuery 代码删除链接。请注意,我使用的是自定义 ajax() 方法,而不是 jQuery 的 ajax 方法。
$('.container button').click(function() {
if (confirm('Are you sure you wish to remove this link?'))
ajax('POST', '/deletelink.php', 'id='+this.name, function(xmlhttp) {
$('.nav ul').load('/getnav.php');
});
});
当我单击任何一个删除按钮时,上面的代码按预期工作,它会删除相应的链接。但是,如果在删除一个链接后我尝试单击另一个删除按钮,则没有任何反应。确认()警报框甚至没有出现。这表明没有为第二次删除尝试输入 click() 函数。
我对此的解释是,一旦函数第一次执行,它会将选择器解析为被单击的特定按钮;这意味着随后单击不同的“.container 按钮”将对此功能无效。
我的评估是否正确?如果是这样,有什么方法可以阻止函数将选择器解析为特定对象?如果没有,是否有任何替代方法可以让我对我现在设置的所有删除按钮使用一个功能?
【问题讨论】:
-
这不是您提出的确切问题的答案,但在某些情况下,如果 AJAX 删除请求成功,则可以简单地使用 JQuery 删除链接。
标签: php jquery ajax jquery-selectors