jQuery使用';这';在函数中
我使用jQuery打开和关闭了一些div 在我尝试将其用作函数之前,代码运行良好,我认为由于上下文/或范围问题,我一直用作选择器的jQuery使用';这';在函数中,jquery,Jquery,我使用jQuery打开和关闭了一些div 在我尝试将其用作函数之前,代码运行良好,我认为由于上下文/或范围问题,我一直用作选择器的jQuery(this)在从函数执行时不起作用 其功能是: function open_close_sections() { if(jQuery('.question').hasClass('open')) { jQuery(this).removeClass('open'); jQuery(this).n
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());
您可以在此笔下看到在函数外部工作的代码:
以及未能在此笔下使用功能:
根据链接的副本。jQuery的
单击
需要函数引用,而不是调用函数的结果。去掉括号。这怎么是该问题的重复?你也可以使用bind
绑定上下文。还有jQuery('.question')。单击(open\u close\u sections())代码>应该是jQuery('.question')。单击(打开/关闭部分)
@lascort怎么会不呢?您标记为重复的问题并没有解决他在范围方面的主要问题。我想在范围问题解决后,他将不得不求助于这个问题。但我不认为这会让很多人——特别是雷吉特——感到失望。这很有效。现在,我要安静地坐下来学习一些jQuery教程,并尝试改进我的游戏。再次感谢,]
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)
});
});