我使用jQuery来打开和关闭一些div。
代码工作正常,直到我尝试将其用作函数,其中,我认为由于上下文/或作用域问题,我一直用作选择器的jQuery(this)
在执行时不起作用一个功能。
功能如下:
function open_close_sections() {
if(jQuery('.question').hasClass('open')) {
jQuery(this).removeClass('open');
jQuery(this).next().slideUp();
}
else
{
jQuery('.open').not(this).next().slideUp();
jQuery('.open').not(this).removeClass('open');
jQuery(this).addClass('open');
jQuery(this).next().slideDown();
}
}
我试图用
调用它jQuery('.question').click(open_close_sections());
您可以在此笔中看到代码在函数外部工作: http://codepen.io/amort2000/pen/KVqaqr 并且无法在此笔的功能中工作: http://codepen.io/amort2000/pen/YwQNOQ
答案 0 :(得分:0)
jQuery(document).ready(function() {
function open_close_sections(x) {
if (jQuery(x).hasClass('open')) {
jQuery(x).removeClass('open');
jQuery(x).next().slideUp();
} else {
jQuery('.open').not(x).next().slideUp();
jQuery('.open').not(x).removeClass('open');
jQuery(x).addClass('open');
jQuery(x).next().slideDown();
}
}
jQuery('.answer').hide();
jQuery('.question').click(function () {
open_close_sections(this)
});
});