jQuery单击后将按钮的此实例作为目标

时间:2019-01-24 16:51:29

标签: javascript jquery variables if-statement

我有一个按钮要引用回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 :(得分:0)

您已经多次返回该按钮,并将其分配给该行中的变量:

var clickedbtn = $(this);

因此,您可以使用clickedbtn引用该按钮

答案 1 :(得分:0)

您需要在事件外部定义变量,然后将单击的实例分配给事件内部的变量,如:

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