我有以下代码在URL上发出GET请求:
$('#searchButton').click(function() {
$('#inquiry').load('/portal/?f=searchBilling&pid=' + $('#query').val());
});
Run Code Online (Sandbox Code Playgroud)
但返回的结果并不总是反映出来.例如,我更改了堆栈跟踪的响应,但是当我单击搜索按钮时没有出现堆栈跟踪.我查看了控制ajax响应的底层PHP代码,它有正确的代码,直接访问页面显示正确的结果,但.load返回的输出是旧的.
如果我关闭浏览器并重新打开它,它会工作一次,然后开始返回陈旧的信息.我可以通过jQuery控制它,还是需要我的PHP脚本输出头来控制缓存?
可能重复:
$(this)在函数中不起作用
我正在写jQuery删除代码的帖子,删除本身是通过post-request to backeds,服务器返回200后,我想在客户端删除这篇文章.
$('.delete-post').click(function() {
$.post($(this).attr('href'), {}, function(data) {
$(this).closest('.post').remove();
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
但是,我注意到内部函数(数据){...)选择器'this'不起作用.我需要$('.delete-post')使用类'.post' 删除最接近div的div.如何管理这个问题?谢谢!
在我的网站的登录页面上,我有两个相同的登录表单.一个在页面的主体中,第二个被加载到标题中的Login链接的jquery对话框中.我已经删除了所有相同的ID并使用了类.
我想要做的是:用户在对话框中单击提交后,我试图将错误消息放入正确的DIV中,但$(this)在jquery post()或ajax调用之后我得到了未定义.
$('.login-submit').live('click', function(){
alert($(this).attr('class')); // THIS WORKS
var form = $(this).parent('form').get(0);
var values = $(this).parent('form').serialize();
$.post('/users/login',values,function(data){
if(!data['success']) {
alert($(this).attr('class')); // THIS SAYS UNDEFINED
// TRYING TO DO THIS
$(this).siblings('.form-error').html(data['error']);
}
},'json');
});
Run Code Online (Sandbox Code Playgroud)
这是HTML:
<form class="form-login" method="post" action="/users/login">
<input type="hidden" name="_method" value="POST">
<div class="form-error"></div>
<input name="data[User][username]" type="text" maxlength="20" id="UserUsername">
<input type="button" class="login-submit" value="Sign In">
</form>
Run Code Online (Sandbox Code Playgroud) 所以这是我的代码,当用户点击跟随按钮时:
$('.follow_btn').click(function() {
$(this).html('<img src = "../assets/style_images/loading.gif">');
var userId = $(this).attr('id');
$.post('../assets/scripts/ajax_follow_parse.php', {
userId: userId
}, function(data) {
$(this).html(data);
});
});
Run Code Online (Sandbox Code Playgroud)
很高兴用第2行所示的加载gif替换它.但是当它返回数据并将其替换为第4行返回的数据时.
我怎样才能解决这个问题?