Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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.trigger=>;选择器:切换克隆元素=循环_Javascript_Jquery - Fatal编程技术网

Javascript jQuery.trigger=>;选择器:切换克隆元素=循环

Javascript jQuery.trigger=>;选择器:切换克隆元素=循环,javascript,jquery,Javascript,Jquery,在克隆菜单(.original/.Cloned)上,我无法使2个切换函数中的1个正常工作 部分#1克隆菜单切换 第2部分克隆菜单切换 我知道问题是,我使用$('a')作为选择器使mobilenav:toggle触发两次,然后它将循环打开和关闭两个菜单 另一方面,移动导航切换图标未正确循环和同步,菜单抽屉处于同步状态,但循环 如果我改变 $this = $('a'); // To $this = $(this); $('.menu').addClass('original').clone().i

在克隆菜单(.original/.Cloned)上,我无法使2个切换函数中的1个正常工作

部分#1克隆菜单切换 第2部分克隆菜单切换 我知道问题是,我使用$('a')作为选择器使mobilenav:toggle触发两次,然后它将循环打开和关闭两个菜单

另一方面,移动导航切换图标未正确循环和同步,菜单抽屉处于同步状态,但循环

如果我改变

$this = $('a');
// To
$this = $(this);
$('.menu').addClass('original').clone().insertAfter('.menu').addClass('cloned').css('position', 'fixed').css('top', '0').css('margin-top', '0').css('z-index', '100').removeClass('original').hide();

scrollIntervalID = setInterval(stickIt, 10);

function stickMenu() {

    var orgElementPos = $('.original').offset();
    orgElementTop = orgElementPos.top;

    if ($(window).scrollTop() >= (orgElementTop)) {    
        orgElement = $('.original');
        coordsOrgElement = orgElement.offset();
        leftOrgElement = coordsOrgElement.left;
        widthOrgElement = orgElement.css('width');
        $('.cloned').css('left', leftOrgElement + 'px').css('top', 0).css('width', widthOrgElement).show();
        $('.original').css('visibility', 'hidden');
        $('.original>div>nav').removeAttr("id", "off-nav");
    } else {
        $('.cloned').hide();
        $('.original>div>nav').attr("id", "off-nav");
        $('.original').css('visibility', 'visible');
    }
}
除了不同步的切换图标外,其他一切都可以正常工作

我已经给了这几个小时了,而我的Javascript/jQuery宏级别非常弱,这可能可以在我的第2部分的半驴解决方案中看到

观看我的杰作

作为一名职业选手,帮我做到这一点

编辑:在请求后从粘贴/克隆功能添加其余代码

$this = $('a');
// To
$this = $(this);
$('.menu').addClass('original').clone().insertAfter('.menu').addClass('cloned').css('position', 'fixed').css('top', '0').css('margin-top', '0').css('z-index', '100').removeClass('original').hide();

scrollIntervalID = setInterval(stickIt, 10);

function stickMenu() {

    var orgElementPos = $('.original').offset();
    orgElementTop = orgElementPos.top;

    if ($(window).scrollTop() >= (orgElementTop)) {    
        orgElement = $('.original');
        coordsOrgElement = orgElement.offset();
        leftOrgElement = coordsOrgElement.left;
        widthOrgElement = orgElement.css('width');
        $('.cloned').css('left', leftOrgElement + 'px').css('top', 0).css('width', widthOrgElement).show();
        $('.original').css('visibility', 'hidden');
        $('.original>div>nav').removeAttr("id", "off-nav");
    } else {
        $('.cloned').hide();
        $('.original>div>nav').attr("id", "off-nav");
        $('.original').css('visibility', 'visible');
    }
}
编辑:添加标记

<header class="menu" id="main-header-wrap"">
    <div class="" id="main-header">
        <div class="toptop"></div>
        <div class="container">
            <div class="row">
                <div id="logotype">         
                </div>
                <div id="menu-container" class="clearfix">
                    <a class="mobile-nav-toggle lines-button x skiplink">
                        <span class="lines"></span>
                    </a>
                    <nav>
                    </nav>
                </div>
            </div>
        </div>
        <nav id="off-nav">
            <ul><li class=""></li></ul>
        </nav>
    </div>
</header>

你能发布你剩下的代码吗?@Dinmyte添加了用于克隆和粘贴菜单的代码。还需要markup@DinoMyte添加了任何感兴趣的标记