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

时间:2016-04-13 08:41:17

标签: javascript jquery html css drop-down-menu

我有这样的下拉列表: enter image description here

其中包含几个按钮。点击其中任何一个标记的按钮后,子菜单应显示我通过AJAX获得的一些数据。所以,最终看起来应该是这样的: enter image description here

这是我的下拉代码:

<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>

因此每个按钮都有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 {

                    }
                }
            });
        }

检索到的数据如下所示:

["Notiflow", "Konfidence Hrvatska"]

所以,它基本上是数组,其值应该是子菜单下拉列表的一部分。 我试着像这样制作这个子菜单,正如你从上面的代码中看到的那样:

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

因此,数据中的foreach值我尝试将<li>附加到单击该按钮的按钮上。但点击按钮只需关闭下拉列表。真的不知道怎么解决这个问题。

1 个答案:

答案 0 :(得分:0)

尝试按照以下方式调用您的函数:

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