3

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

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

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

我的问题是这个上下文菜单在 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\"}";

谢谢你的帮助!

4

1 回答 1

0

此功能是通过 ajax 加载仅适用于子菜单。也有通过 ajax 对顶层进行动态的请求。

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

于 2019-02-28T22:14:38.890 回答