简体   繁体   English

如何将子菜单添加到单击的按钮

[英]How to add submenu to clicked button

I have dropdown list like this: 我有这样的下拉列表: 在此处输入图片说明

Which consists of a few buttons. 其中包含几个按钮。 On click on either of this marked buttons sub-menu should appear with some data that I'm getting via AJAX . 单击此标记的按钮之一后,子菜单应显示一些我通过AJAX获取的数据。 So, eventually it should look like this: 因此,最终应该看起来像这样: 在此处输入图片说明

This is the code of my dropdown: 这是我的下拉菜单的代码:

<ul class="dropdown-menu">
                <?php
                foreach($applications as $application){

                echo "<li><button type='button' style='width:100%;' value='".$application['facebook_id']."' onclick='setSession(this.value);'>".$application['app_name']."</button></li>";

                } ?>
                <?php if($resultForUpperQuery){
                echo '<hr>';
                while($names=$resultForUpperQuery->fetch_assoc()){
                $groupname=$names['ime_grupe'];
                echo "<li><button type='button' style='width:100%;' value='".$groupname."' onclick='showDetails(this.value);'>".$groupname."</button></li>";
                }
                echo '<hr>';
                }
                ?>
                <?php if(isset($_SESSION['ap_id'])){
                echo '
                <li><a href="" data-target="#createAppGroup" data-toggle="modal">Create App Group</a></li>';}?>
                <li><a href="app_setup.php">Add new app</a></li>
    </ul>

So each button has onclick="showDetails(this.value)" functions which looks like this: 因此,每个按钮都有onclick="showDetails(this.value)"函数,如下所示:

function showDetails(o){

            var data    = {};
            var groupName = o;

            data.action2='showConsistsOf';
            data.groupName=groupName;
            $.ajax({
                url: "../includes/adapter.php",
                type: "POST",
                dataType: "JSON",
                data: data,
                async: true,
                success: function (data) {
                    if(data){
                        //console.log(data);
                        for(var i=0;i<data.length;i++){
                        $('button[value=groupName]').append('<li>+data[i]+</li>');
                        }
                    }
                    else {

                    }
                }
            });
        }

And data retrieved looks like this: 检索到的数据如下所示:

["Notiflow", "Konfidence Hrvatska"]

So, its basically as array whose values should be part of submenu dropdown. 因此,它基本上是一个数组,其值应该是子菜单下拉菜单的一部分。 And I tried to make this submenu like this, as you can see from above code as well: 而且我试图使这个子菜单像这样,正如您从上述代码中也可以看到的那样:

success: function (data) {
    if(data){
        console.log(data);
        for(var i=0;i<data.length;i++){
            $('button[value=groupName]').append('<li>+data[i]+</li>');
        }
    }
}

So foreach value in data I tried to append <li> to button which click fired the function. 因此,数据中的foreach值我试图将<li>附加到单击该函数的按钮上。 But click on button just closes the dropdown. 但是单击按钮只会关闭下拉菜单。 Really don't know how to solve this. 真的不知道该怎么解决。

尝试这样调用您的函数:

$(".dropdown-menu").on("click", ".button", function() {.......} );

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM