好吧,所以我有一个按钮,当点击时,将改变给定div的类。问题是,如果变量(答案)不包含字符串“No”,我只希望发生这种情况。这有效......但问题是即使变量不包含单词“No”,代码也不会执行。 ajax结果包含“无用户ID”或“用户ID:#”。
$(document).ready(function() {
$('.like').on('click', function() {
postID = $(this).attr('id').replace('like_', '');
// Declare variables
value = '1';
myajax();
return false;
var doit = answer.IndexOf("No");
if (doit < 0){
$('#post_' + postID).removeClass('dislike').addClass('like');
}
});
function myajax(){
// Send values to database
$.ajax({
url: 'check.php',
//check.php receives the values sent to it and stores them in the database
type: 'POST',
data: 'postID=' + postID + '&value=' + value,
success: function(result) {
answer = result;
$('#Message_' + postID).html('').html(result).prependTo('#post_' + postID);
}
});
}
});
所以我知道我的问题在于var doit。我无法弄清楚它有什么问题。
答案 0 :(得分:3)
success
函数在调用myajax
后返回
第一个&#39; a&#39;在ajax中代表异步,所以你想将整个代码块移动到成功函数中,喜欢:
$(document).ready(function() {
$('.like').on('click', function() {
postID = $(this).attr('id').replace('like_', '');
// Declare variables
value = '1';
myajax(function(answer) {
if (answer.indexOf("No") < 0){
$('#post_' + postID).removeClass('dislike').addClass('like');
}
});
return false;
});
$('.dontlike').click(function() {
myajax(function(answer) { alert('check.php returned:' + answer); }
});
function myajax(onSuccess){
// Send values to database
$.ajax({
url: 'check.php',
//check.php receives the values sent to it and stores them in the database
type: 'POST',
data: 'postID=' + postID + '&value=' + value,
success: function(result) {
$('#Message_' + postID).html('').html(result).prependTo('#post_' + postID);
onSuccess(result);
}
});
}
});