2012-03-02 84 views
1

我使用Dynamic Drive's jQuery Context Menu script,我可以得到的上下文菜單的工作,但一旦我想補充這些腳本,它打破了所有以前的工作其他的jQuery ...動態驅動器上下文菜單腳本打破jQuery的

我假設它可能與使用jQuery.noConflict()而不是$的腳本有關,但我不是專家。

我想堅持這個腳本的原因是因爲它如何處理碰撞和菜單位置。這是我迄今發現的唯一一個將上下文菜單放置在光標上方的位置,如果光標下面沒有足夠的空間。每個其他腳本的菜單都會從文檔中刪除。

我會後我所有的jQuery,與上下文菜單腳本打破的,但有什麼特別之處是,所以這裏只是一個基本的版本:

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

如果有人可以幫助解決這個腳本,或推薦一個沒有定位問題的新的,它將不勝感激。

回答

3

刪除此行從腳本的動態驅動部分:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 

你只需要包括jQuery的一次,它處理所需的所有腳本。

修改你從DD下載腳本,並刪除此行:

jQuery.noConflict() 

應當向文件的頂部。既然你只包括jquery一次,這是不需要的。但是,我仍然無法在jsFiddle中運行,我收到了一個奇怪的錯誤。 http://jsfiddle.net/kybp9/

編輯:現在的工作原理: http://jsfiddle.net/kybp9/1/

UPDATE
更換插件

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) 
    }) 
}; 
+0

我只包括jQuery(我一直在使用),jqcontextmenu.js,CSS和javascript塊。對不起,我應該指定。 – scferg5 2012-03-02 21:20:19

+0

嗯..工作,直到我改變選擇器,實際上存在於我的網頁上。 'a.mylinks'在我的頁面上不存在,所以其餘的jQuery工作。只要我將它改爲'#pins a'(它確實存在),jQuery就停止工作,並且上下文菜單起作用。 – scferg5 2012-03-02 21:42:30

+0

是否有任何javascript錯誤發生?你的其他jQuery腳本停止工作了嗎? – 2012-03-02 22:02:47