jQuery.change()函数只能触发一次
在我的页面上有一个名为boxID的标签。它旁边是一个名为wholeThingBody的div,它通过jQuery隐藏jQuery.change()函数只能触发一次,jquery,html,Jquery,Html,在我的页面上有一个名为boxID的标签。它旁边是一个名为wholeThingBody的div,它通过jQuery隐藏 <select id='boxID'> <option value='option1'> option1</option> <option value='option2'> option2</option> </select> <div id='wholeThingBody'>
<select id='boxID'>
<option value='option1'> option1</option>
<option value='option2'> option2</option>
</select>
<div id='wholeThingBody'>
Some content to permanently display once .change has been fired once
</div>
用于注册仅触发一次的处理程序,这也是因为您希望显示元素,而不是使用类似Use的方法
$boxID。一个“更改”,函数{
$this.next.slideDown300;//显示div wholeThingBody的内容
};
$wholeThingBody.hide;
选择1
选择2
某些内容将永久显示一次。更改已触发一次
只需使用slideDown而不是slideToggle
$("#boxID").change(function () {
$(this).next().slideDown(300);
});
有几种方法可以做到这一点: 使用向下滑动的最佳方式: 删除侦听器:
$("#boxID").on('change', function() {
$(this).next().toggleSlide(300);
$("#boxID").off('change');
});
$("#wholeThingBody").hide();
至于我,我会用CSS类来实现这一点
CSS:
JS:
顺便说一句,对于将来,如果您想更改DOM元素的ID,那么就这样做
this.id = "okna";
而不是
$(this).id = "okna";
因为id是DOM元素的属性,而不是jQuery属性请尝试使用$.callbacksone、callbacks.fireWith
var callbacks=$.callbacksone;
var fn=函数{
$this.next.slideToggle300;//显示div wholeThingBody的内容
};
callbacks.addfn;
$boxID.changefunction{
callbacks.fireWiththis;
};
$wholeThingBody.hide;
选择1
选择2
某些内容将永久显示一次。更改已触发一次
一个完整的答案。我接受了。
$("#boxID").on('change', function() {
$(this).next().toggleSlide(300);
$("#boxID").off('change');
});
$("#wholeThingBody").hide();
#wholeThingBody {
display: none;
}
#wholeThingBody.active {
display: block;
}
$("#boxID").on('change', function() {
$(this).next().addClass('active'); // It will add a class only once
});
this.id = "okna";
$(this).id = "okna";