Как изменить текст при нажати на button?

257
21 сентября 2017, 15:53

Есть такой код для добавления в сравнение:

var compare = {
'add': function(product_id) {
    $.ajax({
        url: 'index.php?route=product/compare/add',
        type: 'post',
        data: 'product_id=' + product_id,
        dataType: 'json',
        success: function(json) {
            $('.alert').remove();
            if (json['success']) {
                $('#content').parent().before('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>');
                $('#compare-total').html(json['total']);
                $('html, body').animate({ scrollTop: 0 }, 'slow');
            }
        },
        error: function(xhr, ajaxOptions, thrownError) {
            alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
        }
    });
},
'remove': function() {
}

}

<button class="testcomp" type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');">Добавить к сравнению</button>

При нажатие должен изменить текст buttona на Сравнение.

Answer 1
$("button.testcomp").click(function(){ $(this).text("Сравнение"); });
Answer 2

Передавать в функцию ещё и this (наша кнопка):

<button class="testcomp" type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>', this);">Добавить к сравнению</button>

Ну и собственно использовать его ...

var compare = { 
  add: function(product_id, button) { // Добавить получаемый аргумент button, который будет принимать this 
    $.ajax({ 
      url: 'index.php?route=product/compare/add', 
      type: 'post', 
      data: 'product_id=' + product_id, 
      dataType: 'json', 
      success: function(json) { 
        $('.alert').remove(); 
 
        if (json['success']) { 
          $('#content').parent().before('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>'); 
 
          $('#compare-total').html(json['total']); 
 
          $('html, body').animate({ scrollTop: 0 }, 'slow'); 
           
          $(button).text('Сравнение'); // Оборачиваем button в jquery и делаем с ним что хотим 
        } 
      }, 
      error: function(xhr, ajaxOptions, thrownError) { 
        alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); 
      } 
    }); 
  }, 
  remove: function() { 
 
  } 
};

READ ALSO
Не работает всплывающее окно

Не работает всплывающее окно

Делаю модальное окно на jquery, но что-то оно не работает

378
jQuery fadeIn fadeOut и его влияние на SEO

jQuery fadeIn fadeOut и его влияние на SEO

Например, если взять такой простой код на jQuery:

232
JS Отключить в select 2 значение выбранное в select 1 и наоборот

JS Отключить в select 2 значение выбранное в select 1 и наоборот

Есть два списка (с мультивыбором) разной направленности но с одинаковым содержимым, если пользователь выбирает что-то в одном, то в другом...

290
Как проверить поле на заполненность?

Как проверить поле на заполненность?

Имеется форма, нужно проверить ее на заполненность полейКнопка отправки блокируется пока не будут заполнены все поля

296