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 在li上显示隐藏的div具有类';选定的';_Javascript_Jquery_Mobile - Fatal编程技术网

Javascript 在li上显示隐藏的div具有类';选定的';

Javascript 在li上显示隐藏的div具有类';选定的';,javascript,jquery,mobile,Javascript,Jquery,Mobile,我有一个显示隐藏在li中的div的脚本,但目前它只显示第一个li中的div,脚本在另一个li中添加类“selected”,但显示第一个li中的div 这是我的密码 $(document).on("pageinit", function(e){ $(".menu_slide").click(function(event) { $(this).parents('li').addClass('selected'); var sm = $($("#"+ $(e.

我有一个显示隐藏在li中的div的脚本,但目前它只显示第一个li中的div,脚本在另一个li中添加类“selected”,但显示第一个li中的div

这是我的密码

$(document).on("pageinit", function(e){
    $(".menu_slide").click(function(event) {
        $(this).parents('li').addClass('selected');

        var sm = $($("#"+ $(e.target).attr('id') +" :jqmData(slidemenu)").data('slidemenu'));   
        var sa =  $('li.selected').attr('class');
        // console.log(sm);
        if($("li").hasClass("selected")){
            $(document).on("click", ":jqmData(slidemenu)", function(e) {
                // console.log(sm.data('slideopen'));
                slidemenu(sm, sm.data('slideopen'));
                e.stopImmediatePropagation();
                e.preventDefault();
            }); sta
        } else {
            // Todo code
        }
    });
});

function slidemenu(sm, only_close) {
    if (!sm.data('slideopen') && !only_close) {

        var swipe = $('.menu_slide_swipe');
        var wi = $(window).width();

        // Portrait Phone
        if(wi == 320){
            sm.show().animate({ left:'31px', avoidTransforms: true, useTranslate3d: true}, 'fast'); 
            swipe.show().animate({ left:'6px', avoidTransforms: true, useTranslate3d: true}, 'fast');
            sm.data('slideopen', true);
        }

        // Landscape Phone
        if (wi == 569){
            sm.show().animate({ left:'307px', avoidTransforms: true, useTranslate3d: true}, 'fast');
            swipe.show().animate({ left:'281px', avoidTransforms: true, useTranslate3d: true}, 'fast');
            sm.data('slideopen', true);         
        } 

        // Portrait Tablet
        if(wi == 769){
            sm.show().animate({width:'450px', left:'302px', avoidTransforms: true, useTranslate3d: true}, 'fast');  
            swipe.show().animate({ left:'276px', avoidTransforms: true, useTranslate3d: true}, 'fast');
            sm.data('slideopen', true);
        }

        // Landscape Tablet
        if(wi == 1024){
            sm.show().animate({width:'450px', left:'552px', avoidTransforms: true, useTranslate3d: true}, 'fast');  
            swipe.show().animate({ left:'525px', avoidTransforms: true, useTranslate3d: true}, 'fast');
            sm.data('slideopen', true);
        }

        if ($(":jqmData(role='header')").data('position') == 'fixed') {
        } else {
            $(":jqmData(slidemenu)").css('margin-left', '10px');
        }

    } else {
        var swipe = $('.menu_slide_swipe');
        sm.animate({left:'-260px', avoidTransforms: false, useTranslate3d: true}, 'fast', function(){sm.hide()});
        swipe.animate({left:'-60px', avoidTransforms: false, useTranslate3d: true}, 'fast', function(){swipe.hide()});
        sm.data('slideopen', false);
        $(":jqmData(slidemenu)").css('margin-left', '0px');
        $("li.ui-li").removeClass("selected");
    }
    return false;
}
编辑

$(".menu_slide").click(function (event) {
    $(this).parents('li').addClass('selected');
    var sm = $($("#" + $(e.target).attr('id') + " :jqmData(slidemenu)").data('slidemenu'));
    var sa = $('li.selected').attr('class');
});
$(document).on("click", "li.selected :jqmData(slidemenu)", function (e) {
    var sm = $($("#" + $(e.target).attr('id') + " :jqmData(slidemenu)").data('slidemenu'));
    slidemenu(sm, sm.data('slideopen'));
    e.stopImmediatePropagation();
    e.preventDefault();
});

您似乎从未从任何
  • 中删除“选定”类。每次单击时,在添加此行之前:

    $(this).parents('li').addClass('selected');
    
    从所有可能受影响的LIs中删除“选定”类并将其重置


    此外,正如Kevin B所提到的,点击中的点击是非常奇怪的结构。您可能最好在一开始就在
    jqmData(slidemenu)
    上单击偶数,然后检查其中的“selected”类,而不是尝试将if放在外部并有条件地绑定它。或者,根据HTML的不同,可以使用类似'li.selected>:jqmData(slidemenu)'的方式作为选择器(我显然在猜测DOM的结构)。

    将事件的绑定移动到
    $(“.menu\slide”)之外。单击
    事件。这使得事件被多次绑定到同一元素

     $(document).on("click", "li.selected :jqmData(slidemenu)", function(e) {
          // console.log(sm.data('slideopen'));
          slidemenu(sm, sm.data('slideopen'));
          e.stopImmediatePropagation();
          e.preventDefault();
    }); 
    

    我不知道这是否是原因,但是在点击事件中的点击事件通常是一个坏主意,尤其是在
    文档中授权的点击事件?也许我可以帮你我看不到你显示divFrederik.L的部分-我假设
    slidemenu(sm,sm.data('slideopen')是显示div的部分。我刚刚更新了js文件中的所有代码。你的意思是:
    $(“.menu-slide”)。单击(函数(事件){$(this.parents('li')。addClass('selected');var sm=$(“#“+$(e.target”).attr('id')+“:jqmData(slidemenu)”).data('slidemenu');var sa=$('li.selected').attr('class'));$(document).on(“click”,“li.selected:jqmData(slidemenu)”,函数(e){var sm=$($(“#“+$(e.target).attr('id')+“:jqmData(slidemenu)”).data('slidemenu');slidemenu(sm,sm.data('slideopen'));e.stopimediatepropagation();e.preventDefault()如果您看到上面编辑的de代码,它将删除div上的de'selected'类并返回到'hidde',我现在要做的是检查要显示的div是否是'li.selected'的子级。