0

我(非常)是 jQuery 新手,所以请保持温和,但我似乎无法让下面的基本脚本正常工作。

加载时的直接类是 .menuFlyout 并且单击它时会根据需要更改,但是将其更改回的第二部分不起作用。noConflict() 没有帮助。

提前感谢您的帮助。


jQuery(document).ready(function() {
    jQuery('.menuFlyout').click(function(){
        jQuery('.menuFlyout').addClass('closeFlyout');
        jQuery('.menuFlyout').removeClass('menuFlyout');
    });
    jQuery('.closeFlyout').click(function(){
        jQuery('.closeFlyout').addClass('menuFlyout');
        jQuery('.closeFlyout').removeClass('closeFlyout');
    });
});
4

2 回答 2

3

试试这个

jQuery(document).ready(function() {
    jQuery(document).on('click','.menuFlyout', function(){
        jQuery('.menuFlyout').addClass('closeFlyout');
        jQuery('.menuFlyout').removeClass('menuFlyout');
    });
    jQuery(document).on('click','.closeFlyout', function(){
        jQuery('.closeFlyout').addClass('menuFlyout');
        jQuery('.closeFlyout').removeClass('closeFlyout');
    });
});

closeFlyout您的代码的问题是,当您附加处理程序时,没有带有类的元素。您需要使用on方法委托单击处理程序(有关详细信息,请参阅“直接和委托事件”部分)。

使用事件委托应该可以解决您的问题,但作为旁注,您有 2 个改进的代码版本(由 @wirey 和 @h0tw1r3 建议)

jQuery(document).ready(function() {
    jQuery(document).on('click','.menuFlyout', function(){
        jQuery(this).addClass('closeFlyout').removeClass('menuFlyout');
    });
    jQuery(document).on('click','.closeFlyout', function(){
        jQuery(this).addClass('menuFlyout').removeClass('closeFlyout')
    });
});

或者

jQuery(document).ready(function() {
    jQuery(document).on('click','.menuFlyout, .closeFlyout', function(){
        jQuery(this).toggleClass('closeFlyout');
        jQuery(this).toggleClass('menuFlyout');
    });
});
于 2013-01-03T15:09:39.173 回答
1

检查班级名称是否拼写正确。也检查萤火虫。尝试如下,看看它是否有效:

jQuery(document).ready(function() {
    jQuery('.menuFlyout').live('click',function(){
        jQuery('.menuFlyout').addClass('closeFlyout');
        jQuery('.menuFlyout').removeClass('menuFlyout');
    });
    jQuery('.closeFlyout').live('click',function(){
        jQuery('.closeFlyout').addClass('menuFlyout');
        jQuery('.closeFlyout').removeClass('closeFlyout');
    });
});

希望这有帮助,谢谢

于 2013-01-03T15:48:33.433 回答