使用.load(ajax)后SlideToggle无法正常工作

时间:2013-08-13 01:39:03

标签: jquery

我正在尝试自定义灯箱效果,我发现它非常复杂。经验越来越精细,但是一旦我加载模态窗口(联系人)并删除它,所有slideToggle实例都无法正常工作。

这是代码:(不确定这确实有帮助)

$('.viewinfo').on( 'click', function(e){
        e.preventDefault();
        $(this).parent('.project').find('.project-info').slideToggle(1500, 'easeOutCubic');
        $(this).toggleClass('closeinfo');
    });

$('#icon-mobile-menu').on('click', function(){
        $('#mobile-nav ul').slideToggle(1500);
    });

我还是jquery的新手,所以有很多我不明白...... 非常感谢任何帮助

View Site

1 个答案:

答案 0 :(得分:1)

尝试将其更改为此(可能是委派的点击事件):

摆脱缓和效果,看看是否会导致问题暂时消失:

$('body').on( 'click', '.viewinfo', function(e){
        e.preventDefault();
        $(this).parent('.project').find('.project-info').slideToggle(1500);
        $(this).toggleClass('closeinfo');
    });

$('body').on('click', '#icon-mobile-menu', function(){
        $('#mobile-nav ul').slideToggle(1500);
    });

从技术上讲,你应该使用对于元素不变的直接父元素而不是body,但body也可以使用。

希望我能正确理解你。如果这有助于我,请告诉我......