动态驱动器上下文菜单脚本中断jQuery

动态驱动器上下文菜单脚本中断jQuery,jquery,contextmenu,Jquery,Contextmenu,我正在使用,我可以让上下文菜单工作,但一旦我添加了这些脚本,它就会破坏以前工作的所有其他jQuery 我假设它可能与使用jQuery和.noConflict()而不是$的脚本有关,但我不是专家 我之所以坚持使用这个脚本,是因为它处理冲突和菜单位置的方式。这是迄今为止我发现的唯一一个在光标下方没有足够空间时将上下文菜单放置在光标上方的菜单。每个其他脚本的菜单都会从文档中被切断 我会发布所有与上下文菜单脚本相悖的jQuery,但这并没有什么特别之处,所以这里只是一个基本版本: $(function(

我正在使用,我可以让上下文菜单工作,但一旦我添加了这些脚本,它就会破坏以前工作的所有其他jQuery

我假设它可能与使用
jQuery
.noConflict()
而不是
$
的脚本有关,但我不是专家

我之所以坚持使用这个脚本,是因为它处理冲突和菜单位置的方式。这是迄今为止我发现的唯一一个在光标下方没有足够空间时将上下文菜单放置在光标上方的菜单。每个其他脚本的菜单都会从文档中被切断

我会发布所有与上下文菜单脚本相悖的jQuery,但这并没有什么特别之处,所以这里只是一个基本版本:

$(function(){
    $("#selector").hide();
});

如果有人可以帮助修复此脚本,或者推荐一个没有定位问题的新脚本,我们将不胜感激。

从脚本的动态驱动器部分删除此行:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
它应该朝向文件的顶部。因为只包含jquery一次,所以不需要它。然而,我仍然无法在JSFIDLE中运行它,我得到了一个奇怪的错误

编辑:现在可以工作了:

更新
替换插件的这一部分

jQuery.fn.addcontextmenu = function(contextmenuid) {
    var $ = jQuery
    return this.each(function() { //return jQuery obj
        var $target = $(this)
        jquerycontextmenu.init($, $target, $('#' + contextmenuid))
    })
};
这样可以避免
$contextmenu.get(0)
是未定义的错误:

jQuery.fn.addcontextmenu = function(contextmenuid) {
    var $ = jQuery,
        $contextmenu = $('#' + contextmenuid));
    if (!$contextmenu.length) {
        // no contextmenu found, exit
        return this;
    }
    return this.each(function() { //return jQuery obj
        var $target = $(this)
        jquerycontextmenu.init($, $target, $contextmenu)
    })
};

我只包括jQuery(我一直在使用的)、jqcontextmenu.js、CSS和javascript块。对不起,我应该指定的。嗯。。这是可行的,直到我将选择器更改为页面上实际存在的内容
a.mylinks
在我的页面上不存在,因此jQuery的其余部分可以工作。一旦我将其更改为
#pins a
(确实存在),jQuery就会停止工作,上下文菜单也会工作。是否发生了javascript错误?还有哪些jquery脚本停止工作?请确保正确使用插件。参数应该是页面上存在的id
$('a.mylinks')。addcontextmenu('contextmenu11')
注意,它也不像其他jquery方法那样使用
#
。好的,我尝试了你的建议,替换了代码。它不会导致jQuery的其余部分中断,但上下文菜单不起作用。顺便说一句,我感谢你的帮助。
jQuery.fn.addcontextmenu = function(contextmenuid) {
    var $ = jQuery,
        $contextmenu = $('#' + contextmenuid));
    if (!$contextmenu.length) {
        // no contextmenu found, exit
        return this;
    }
    return this.each(function() { //return jQuery obj
        var $target = $(this)
        jquerycontextmenu.init($, $target, $contextmenu)
    })
};