JQuery:Ajax .load问题

时间:2009-05-11 18:05:58

标签: jquery ajax

我有一张已注册的最近网络访客的表格。其中一个栏目是一个简单的“发送电子邮件”链接,当我点击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;                              
});

3 个答案:

答案 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;                                                      
});

当然,如果后端脚本由于某种原因失败,您可能希望恢复原状。如果您对这方面的技术感兴趣,请告诉我,我将通过最佳实践等详细解释。