2012-04-14 17 views
0

私はJmpress.js(実際にjqueryプラグインであるimpress.jsのフォーク)をDrupal 7に統合しようとしています。Drupal 7のJavascript:JMpress.jsを使用したときの競合

elsewhereで説明されているように、まず$を使用する代わりにjQueryを直接指して解決することができた "$は関数ではありません"というエラーが発生しました。

しかし、私は認識された機能を得たので、物事は本当にひどく(いくつかのケースでのみ動作するキー配置が誤って配置されています)、もっと重要なのは、Firebugコンソールに多くのエラーメッセージが表示されます。ここで

私はそれらのいくつかを貼り付けます。

$(hashLink).on is not a function 
(?)()jmpress.js?m2hr5f (línea 1491) 
step = "init" 
eventData = Object { settings={...}, current={...}, container=[1], más...} 
(?)()jmpress.js?m2hr5f (línea 278) 
idx = 2 
callback = function() 
nodeName()jquery.js?v=1.4.4 (línea 34) 
j = [firstSlide(step, eventData), function(), function()] 
s = function() 
v = function() 
callCallback()jmpress.js?m2hr5f (línea 277) 
callbackName = "selectInitialStep" 
element = "init" 
eventData = Object { settings={...}, current={...}, container=[1], más...} 
init()jmpress.js?m2hr5f (línea 666) 
args = Object { beforeChange=[0], beforeInitStep=[0], initStep=[0], más...} 
f()jmpress.js?m2hr5f (línea 800) 
(?)()jmpress.js?m2hr5f (línea 810) 
idx = 0 
element = div#simple 
nodeName()jquery.js?v=1.4.4 (línea 34) 
j = [div#simple] 
s = function() 
v = div#simple 
toArray()jquery.js?v=1.4.4 (línea 27) 
j = function() 
s = undefined 
jmpress()jmpress.js?m2hr5f (línea 809) 
method = undefined 
diapos()17 (línea 105) 
noConflict()jquery.js?v=1.4.4 (línea 30) 
j = function() 
inArray()jquery.js?v=1.4.4 (línea 38) 
[Parar en este error] 

$(hashLink).on("click"+current.hashNamespace, function(event) { 

私は、これは日のほとんどのカップルのために働いて得るために戦ってきたように私は(私は、元にしようと始め、今少し迷ってしまいましたimpress.js、しかし、私はjqueryプラグインを統合する方がより現実的な選択肢のように見えたので、これで解消しました)。

私はさらにそれを取得していないとして、私はまた、(jmpress.jsを起動するための本当に小さなコードである)encapsulating my codeを試してみましたが、私は何か間違ったことをしたと思います:)

すべてのヘルプ/アイデアがします感謝する。ありがとう!

JMpress.jsが正しくヘッダにロードされ、そしてIは、(コードが剥離されないように、PHPコードと、アクティブフィルタ)公開されたノードの本体にこのコードを追加している:

<script type="text/javascript"> 
jQuery(function() { 
    jQuery('#simple').jmpress(); 
}); 
</script> 

答えて

0

問題はjQueryバージョンに関連しています。

Drupal 7はjQuery 1.4.4で動作し、http://shama.github.com/jmpress.js/#/homeのjmpressの例はjQuery 1.7.1で動作します。例えば、.on()関数は1.7でjQueryのに加え、

http://api.jquery.com/on/

あなたがこのプラグインを使用したいあなたのjQueryのバージョンを上書きします。

不要なバージョンのjQueryを削除してjquery 1.7.1に置き換えるには、hook_js_alterを使用します。

JSコードの他の部分がこの変更後に破損する可能性があるので、必要な場合にのみ使用してください。

+0

**ありがとうございました!**この問題はかなりまっすぐに解決されました。 jsコードの他の部分のエラーを防ぐために、私はその正確なビューに対してのみ_js_alterを使用しようとします。 – versvs

関連する問題