动态上下文菜单不显示jQuery

时间:2013-11-23 09:48:25

标签: javascript jquery html

我正在开发一个Visual Web Editor项目。它是一个顶部有输入文本的网页,用户输入网站名称,网站加载到输入字段下方(网站用户可以输入仅限于由我们公司。)

加载的页面类似于实际网站,所有锚链接都设置为“#”,所有按钮和表单都返回false。意味着用户将留在页面上,无法导航到已加载的网站其他页面......

每个将悬停的元素用户都会被勾勒出来,点击元素之后,系统会提示用户点击元素的列表。 例如如果他点击图片,他可以更改图片或增加/减少宽度/高度。

我成功获取元素但无法获取上下文菜单...它没有显示,因为加载的页面有自己的jquery并且超越了我的。 .Firebug说“ TypeError:$ .contextMenu不是函数” .. 但是没有网站加载时它可以正常工作

我知道有点令人困惑的是要理解我真正想说的内容,所以我附在我正在编写的一段代码之下。它可能会帮助您理解。

<script src="jquery-1.8.2.min.js" type="text/javascript"></script>
<script src="src/jquery.contextMenu.js" type="text/javascript"></script>

<script>
$(function(){

  $.contextMenu({
        selector: 'body', 
        trigger: 'left',
        callback: function(key, options) {
            var m = "clicked: " + key;
            window.console && console.log(m) || alert(m); 
        },
        items: {
            "edit": {name: "Edit", icon: "edit"},
            "cut": {name: "Cut", icon: "cut"},
            "copy": {name: "Copy", icon: "copy"},
            "paste": {name: "Paste", icon: "paste"},
            "delete": {name: "Delete", icon: "delete"},
            "sep1": "---------",
            "quit": {name: "Quit", icon: "quit"}
        }
    }); 

 /*  other code goes here */
</script>

<body>
<form method="post" action="crossdomain" id="mzwebsubmit">
    <input type="text" name="websitename" class="mzweb" value="${websitename }"> 
    <input type="submit" class="mzwebsubmit">  
</form>
<form method="post" action="crossdomain" id="finalpageform">
    <input type="hidden" name="finalpage" id="finalpage" class="mzweb" > 
    <input type="submit" value="Save" class="mzweb">
</form>

<hr>
<hr>
<!-- Website Loads in this DIV -->
<div id="visualwebload">${data }</div>

我在身体上尝试它至少它应该出现在我点击的任何地方,但它什么也没做。如果我他们没有加载网站,那么它的工作完美。所以有人可以建议我如何避免这些问题并获得动态的上下文菜单。正确包含所有上下文菜单依赖项。

2 个答案:

答案 0 :(得分:0)

我同意Murali Mopuru,它看起来像是一个参考问题。请再次确认,src =“src / jquery.contextMenu.js”是特意加载的。

答案 1 :(得分:0)

你可以这样做:

$(document).ajaxSend(function () {
     $.contextMenu('destroy');
});