JQuery выполнить, если переменная содержит строку

Хорошо, у меня есть кнопка, которая при нажатии изменяет класс данного элемента. Дело в том, что я хочу, чтобы это происходило только в том случае, если переменная (ответ) не содержит строку "Нет". Это работает... но проблема в том, что даже если переменная не содержит слова "Нет", код не будет выполняться. Результат ajax содержит либо "No 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. Я просто не могу понять, что с ним не так.

1 ответ

Решение

success функция выполняется после вызова myajax возвращается

первое "a" в ajax означает асинхронный, поэтому вы хотите переместить весь блок кода в функцию успеха, likeo:

$(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);
        }
    });
}
});
Другие вопросы по тегам