我有一张已注册的最近网络访客的表格。其中一个栏目是一个简单的“发送电子邮件”链接,当我点击Jquery并点击ajax .load到一个向该人发送电子邮件的后端php脚本时,我就点击它。
我无法弄清楚的是,如何简单地将点击的链接更改为“已发送”等内容。而且它不再是一个链接。
代码是:
$(".sendEmail").click(function(){
var element = $(this);
var guest_id = element.attr("id");
$.post("WebGuest_SendEmail.php",{id: guest_id}, function(data) {
$(this).html(data); //NOT SURE WHAT TO DO HERE ON SUCCESS.
});
return false;
});
答案 0 :(得分:4)
最简单的方法是用一些文字替换链接。基本上,我们只是在调用锚元素上使用jQuery replaceWith()函数。这是一个完整的HTML文件的简化示例,可以执行您想要的操作。
<script src="lib/jquery.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
$(".sendEmail").click(function(){
var element = $(this);
$.post("test.html", {}, function(data) {
element.replaceWith("Sent!");
});
return false;
});
});
</script>
<a href="#" class="sendEmail">click me</a>
答案 1 :(得分:2)
您可以使用“已发送!”文字替换该链接:
$(".sendEmail").click(function(){
var element = $(this);
var guest_id = element.attr("id");
element.replaceWith('Sent!');
$.post("WebGuest_SendEmail.php",{id: guest_id}, function(data) {
$("#container").html(data); //NOT SURE WHAT TO DO HERE ON SUCCESS.
});
return false;
});
答案 2 :(得分:2)
我会让用户知道发生了什么,然后告诉他们发生了什么。所以,告诉他们什么时候发送,然后告诉他们何时发送 。
像这样:
$(".sendEmail").click(function(){
var element = $(this);
var guest_id = element.attr("id");
element.replaceWith('Sending...');
$.post("WebGuest_SendEmail.php",{id: guest_id}, function(data) {
$(this).html(data); //NOT SURE WHAT TO DO HERE ON SUCCESS.
element.replaceWith('Sent!');
});
return false;
});
当然,如果后端脚本由于某种原因失败,您可能希望恢复原状。如果您对这方面的技术感兴趣,请告诉我,我将通过最佳实践等详细解释。