jQuery创建使用Ajax加载的动态上下文菜单

时间:2013-03-17 22:23:34

标签: jquery ajax contextmenu

我正在使用jQuery 1.8.11.js的以下上下文菜单插件,并使用“build”回调在每次右键单击时动态创建菜单。

http://medialize.github.com/jQuery-contextMenu/index.html

我希望能够在单击某个项目时动态加载菜单选项。

我的问题是这个contextmenu在ajax调用之后不包含任何项目。

这是jQuery代码:



    $(function(){
        $.contextMenu({
            selector: '.context-menu-one ul li',
            build: function($trigger, e) {
            var str = $trigger.text();
            var replaced = str.split(/[^a-zA-Z0-9]/g);
            $.post('application/getMenu.php',
                {item : replaced[1]},
                function(data) {
                    menuItems = data
                };
            });
            return {
                callback: function(key, options) {
                    var m = "clicked: " + key;
                    window.console && console.log(m) || alert(m); 
                    },
                items: menuItems
                };
            }
        });
    });

这是发送ajax响应的PHP代码的一部分:



    $toReturn = "";
    while($row = $result->fetch_assoc()) {
        $var = $row['category_name'];
        $toReturn .= "\"".$var."\": {name: \"".$var."\"},";
    }
    echo $toReturn . "\"quit\": {name: \"Quit\"}";

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

此功能是通过ajax加载的,仅可用于子菜单。也有人要求通过ajax使顶层动态化。

https://github.com/swisnl/jQuery-contextMenu/issues/574

相关问题