我有一个按钮要引用回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();
}
});
});
答案 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();
}
});
});