yayQuery播客的第11集提到$ .ajax上下文选项.如何在成功回调中使用此选项?我目前正在做的是将输入参数传递回成功回调,以便我可以设置成功/错误后调用的id的动画.如果我使用context选项,那么也许我不必从被调用的例程中传回参数.
在此示例中,我将STATEID传递回success字段,以便在从数据库中删除状态后从DOM中删除状态:
$('td.delete').click(function() {
var confirm = window.confirm('Are you sure?');
if (confirm) {
var StateID = $(this).parents('tr').attr('id');
$.ajax({
url: 'Remote/State.cfc',
data: {
method: 'Delete',
'StateID': StateID
},
success: function(result) {
if (result.MSG == '') {
$('#' + result.STATEID).remove();
} else {
$('#msg').text(result.MSG).addClass('err');;
};
}
});
}
});
Run Code Online (Sandbox Code Playgroud) 我有两个带有类型文本的输入,当用户开始编写我将数据发送到另一个名为"jsonpage.html"的页面时,我写了一个函数onkeyup.但我的代码的成功部分不起作用.我认为它无法找到div的地址.但在第一部分它可以找到它.我不知道为什么它在成功部分不起作用?如果省略部分"$(this).closest(".main").找到"从成功起作用.但是在我添加这些行之后它没有.
这是我的片段:
$('.country').each(function() {
$(this).on('keyup', function(e) {
var element = $(this).val().length;
if (e.which !== 0 &&
!e.ctrlKey && !e.metaKey && !e.altKey
) {
if (element > 2) {
$(this).closest(".main").find(".mini-loading").css("display", "block")
var val = $(this).val()
val = val.substr(0, 1).toUpperCase() + val.substr(1).toLowerCase();
$(this).val(val)
$.ajax({
url: "jsonpage.html",
type: "get",
contentType: 'application/json; charset=utf-8',
data: {
key: $(this).val()
},
success: function(result) {
$(this).closest(".main").find(".mini-loading").css("display", "none")
$(this).closest(".main").find(".co").empty().html(result)
}
})
}
}
})
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="main">
<div class="city1">
<input type="text" value="" class="country" placeholder="First City" />
<input …
Run Code Online (Sandbox Code Playgroud)