2011-11-09 36 views
0

好的,所以我有一个按钮,点击后会改变给定div的类。事情是,我只想在变量(回答)不包含字符串“No”的情况下发生这种情况。这有效......但问题是,即使变量不包含单词“否”,代码也不会执行。 ajax结果包含“无用户ID”或“用户ID:#”。如果变量包含字符串,jQuery会执行

$(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。我只是无法弄清楚它有什么问题。

回答

3

success函数调用myajax回报

第一“一”在AJAX表示异步的,所以你要整个代码块移动到成功的功能后执行,likeso:

$(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); 
     } 
    }); 
} 
}); 
+0

虽然'var answer = result;'会更好吗?或者只是'result.indexOf(“否”)'?另外我认为它是'indexOf'中的小写'i'。 –

+0

是和是,已更新 – Jason

+0

此解决方案不起作用。 ajax存在一个功能的原因。我有另一个按钮(不喜欢),它也执行相同的功能,但设置不同的变量。如果我把indexOf放在我的ajax中,它不会区分哪个按钮被点击。 – Sweepster

相关问题