首页 > 解决方案 > 不捕获 ajax 中的类

问题描述

我在使用 ajax 更改课程时遇到问题,它适用于 boton 课程,但不适用于 boton_clic_sin 课程,请有人可以帮助我。谢谢

$(document).ready(function() {
$('.btnguardar').on('click', function(e) {
    e.preventDefault();
    var $container = $(this).closest(".container");
    var id_oferta = $container.find(".id_oferta").val();
    var url_img = $container.find(".url_img").val();
    var $boton = $(this).closest('.boton');  
    var $boton_clic_sin = $(this).closest('.boton_clic_sin');

    $.ajax({
        type: "POST",
        url: "app/ofertasguardadasController.php",
        data: {
            id_oferta,  
            url_img},       
        success: function(r) {
            if (r==1) {         
            $('.aviso').empty();
            $('.aviso').append('Se agrego a la lista <a href="Las-Ofertas-que-mas-te-gustan"> Ver lista</a>').fadeIn("fast");
            $('.aviso').fadeOut(7000);
            $boton.addClass('deshabilita');
            $boton.attr('disabled', 'disabled');
            $boton_clic_sin.addClass('.habilita');
            $('.lista').html("Ver lista").fadeIn("slow");
            $('.title_lista').html("Agregado a la lista").fadeIn("slow");



            }

        }
    });
});                 

});

html

<span class="boton_clic_sin">♥&lt;/span>
<button id="btnguardar" class="boton btnguardar">♥&lt;/button>

标签: ajax

解决方案


如果您span位于您之前,您button可以使用prev()获取该元素并用于toggleClass添加或删除添加的类。

演示代码(我删除了一些不需要的代码):

$('.btnguardar').on('click', function(e) {
  //find button prev element ->span
  var $boton_clic_sin = $(this).prev();
  //use toggle to add or remove class
  $boton_clic_sin.toggleClass('habilita');

});
.habilita {
  color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span class="boton_clic_sin">♥&lt;/span>
<button id="btnguardar" class="boton btnguardar">♥&lt;/button>


推荐阅读