JQuery целевой этот экземпляр кнопки после нажатия - PullRequest
0 голосов
/ 24 января 2019

У меня есть кнопка, на которую я хочу сослаться обратно внутри оператора if, чтобы я мог нацелить элемент внутри родного элемента кнопки.

$(function() {
$('button').click(function() {
        var clickedbtn = $(this);
        if (clickedbtn.closest('.container-destination').find('.slider-display').hasClass('open')) {
            alert('it is open already');
        }
         else if (clickedbtn.closest('.container-destination').find('.slider-display').hasClass('closed')) {
            alert('it is closed');
            $('.slider-display.open').slideUp();
            $('.slider-display.open').addClass('closed');
            $('.slider-display.open').removeClass('open');


            clickedbtn.closest('container-destination').find('slider-display').addClass('open');
            clickedbtn.closest('container-destination').find('slider-display').slideDown();
         }
});

});

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Вам нужно определить переменную вне события, затем назначить экземпляр, по которому щелкнули, переменной внутри него, например:

$(function() {
    var clickedbtn;

  $('button').click(function() {
    clickedbtn = $(this);
    var sliderDisplay = clickedbtn.closest('.container-destination').find('.slider-display');

    if ( sliderDisplay.hasClass('open') ) {
      alert('it is open already');
    } else if ( sliderDisplay.hasClass('closed') ) {
      alert('it is closed');

      $('.slider-display.open').slideUp().addClass('closed').removeClass('open');
      sliderDisplay.addClass('open').slideDown();
    }
  });
});
0 голосов
/ 24 января 2019

Вы уже обращались к кнопке несколько раз и присваивали ее переменной в этой строке:

var clickedbtn = $(this);

Поэтому вы можете обратиться к кнопке, используя clickedbtn

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...