Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery中的类切换_Javascript_Jquery - Fatal编程技术网

Javascript jQuery中的类切换

Javascript jQuery中的类切换,javascript,jquery,Javascript,Jquery,我不能让我的代码工作 $(document).ready(function() { $('.openMenu').click(function() { $('#menu').animate({ left: '0%' },500); $(this).removeClass('openMenu').addClass('closeMenu'); }); $('.closeMenu').click(function() { $('#menu').animate(

我不能让我的代码工作

$(document).ready(function() {
$('.openMenu').click(function() {
    $('#menu').animate({
    left: '0%'
    },500);
    $(this).removeClass('openMenu').addClass('closeMenu');
});

$('.closeMenu').click(function() {
    $('#menu').animate({
    left: '-100%'
    },500);
    $(this).removeClass('closeMenu').addClass('openMenu');
});
});
这段代码应该使一个菜单在类为“openMenu”的div被单击时出现,并使其成为一个“隐藏”按钮,以便再次单击时,菜单消失。等等

它只工作一次:菜单出现,div的类从openMenu更改为closeMenu,但不会使菜单隐藏

非常感谢您的帮助

$('.closeMenu')
在代码运行时不存在

您可以轻松地将这两个处理程序组合成一个,或者使用事件委派

将它们结合起来看起来像:

$('.openMenu').click(function() {
    var leftAmt = $(this).is('.closeMenu') ? '-100%' : '0%';
    $('#menu').animate({
    left: leftAmt
    },500);
    $(this).toggleClass('openMenu closeMenu');
});
我可能会将此设置向后,并且页面加载中不存在
$('.openMenu')
(取决于初始元素的状态),如果在代码运行时不存在
$('.closeMenu')
,请更改开始选择器

您可以轻松地将这两个处理程序组合成一个,或者使用事件委派

将它们结合起来看起来像:

$('.openMenu').click(function() {
    var leftAmt = $(this).is('.closeMenu') ? '-100%' : '0%';
    $('#menu').animate({
    left: leftAmt
    },500);
    $(this).toggleClass('openMenu closeMenu');
});
我可能会将此设置向后,并且页面加载中不存在
$('.openMenu')
(取决于初始元素的状态),如果在代码运行时不存在
$('.closeMenu')
,请更改开始选择器

您可以轻松地将这两个处理程序组合成一个,或者使用事件委派

将它们结合起来看起来像:

$('.openMenu').click(function() {
    var leftAmt = $(this).is('.closeMenu') ? '-100%' : '0%';
    $('#menu').animate({
    left: leftAmt
    },500);
    $(this).toggleClass('openMenu closeMenu');
});
我可能会将此设置向后,并且页面加载中不存在
$('.openMenu')
(取决于初始元素的状态),如果在代码运行时不存在
$('.closeMenu')
,请更改开始选择器

您可以轻松地将这两个处理程序组合成一个,或者使用事件委派

将它们结合起来看起来像:

$('.openMenu').click(function() {
    var leftAmt = $(this).is('.closeMenu') ? '-100%' : '0%';
    $('#menu').animate({
    left: leftAmt
    },500);
    $(this).toggleClass('openMenu closeMenu');
});

我可能会将其向后设置,并且页面加载中不存在
$('.openMenu')
(取决于初始元素的状态),如果是这种情况,只需更改开始选择器即可

我怀疑事件委派就是您要找的。不要使用jQuery的.CHILL方法,考虑使用.on方法,并在其中提供选择器。

$(文档).ready(函数(){
$(文档)。在(“单击“,”.openMenu“,函数()上){
// ...
});
$(文档)。在(“单击”、“.closeMenu”上,函数(){
// ...
});
});

我怀疑事件授权是您在这里追求的目标。不要使用jQuery的.CHILL方法,考虑使用.on方法,并在其中提供选择器。

$(文档).ready(函数(){
$(文档)。在(“单击“,”.openMenu“,函数()上){
// ...
});
$(文档)。在(“单击”、“.closeMenu”上,函数(){
// ...
});
});

我怀疑事件授权是您在这里追求的目标。不要使用jQuery的.CHILL方法,考虑使用.on方法,并在其中提供选择器。

$(文档).ready(函数(){
$(文档)。在(“单击“,”.openMenu“,函数()上){
// ...
});
$(文档)。在(“单击”、“.closeMenu”上,函数(){
// ...
});
});

我怀疑事件授权是您在这里追求的目标。不要使用jQuery的.CHILL方法,考虑使用.on方法,并在其中提供选择器。

$(文档).ready(函数(){
$(文档)。在(“单击“,”.openMenu“,函数()上){
// ...
});
$(文档)。在(“单击”、“.closeMenu”上,函数(){
// ...
});
});

您的代码未优化。无论如何,它不会工作,因为您正在将事件附加到不存在的元素
.closeMenu

要将事件附加到在任何时候(也在加载页面之后)创建的元素,应使用事件委派。在jQuery中,事件委派可以通过
on()
off()
方法进行。 见:

以下是解决方案(未经测试):

此解决方案之所以有效,是因为您将事件附加到目标的现有父级

(我重复:这段代码没有优化,菜单可以用更好的方式完成,但事件委派解决了这个典型的事件问题)


有关活动委派的更多信息,请参阅或谷歌…

您的代码未优化。无论如何,它不会工作,因为您正在将事件附加到不存在的元素
.closeMenu

要将事件附加到在任何时候(也在加载页面之后)创建的元素,应使用事件委派。在jQuery中,事件委派可以通过
on()
off()
方法进行。 见:

以下是解决方案(未经测试):

此解决方案之所以有效,是因为您将事件附加到目标的现有父级

(我重复:这段代码没有优化,菜单可以用更好的方式完成,但事件委派解决了这个典型的事件问题)


有关活动委派的更多信息,请参阅或谷歌…

您的代码未优化。无论如何,它不会工作,因为您正在将事件附加到不存在的元素
.closeMenu

要将事件附加到在任何时候(也在加载页面之后)创建的元素,应使用事件委派。在jQuery中,事件委派可以通过
on()
off()
方法进行。 见:

以下是解决方案(未经测试):

此解决方案之所以有效,是因为您将事件附加到目标的现有父级

(我重复:这段代码没有优化,菜单可以用更好的方式完成,但事件委派解决了这个典型的事件问题)


有关活动委派的更多信息,请参阅或谷歌…

您的代码未优化。无论如何,它不会工作,因为您正在将事件附加到不存在的元素
.closeMenu

要将事件附加到在任何时候(也在加载页面之后)创建的元素,应使用事件委派。在jQuery中,事件委派可以通过
on()
off进行(