2012-04-14 2 views
0

나는 실제로 jquery 플러그인 인 impress.js의 포크 인 Jmpress.js를 드루팔 (Drupal 7)에 통합하려고하는데 몇 가지 문제가 있습니다.드루팔 (Drupal 7의 자바 스크립트 : JMpress.js를 사용할 때의 충돌

먼저 "$는 함수가 아닙니다."라는 오류가있어서 elsewhere과 같이 $를 사용하는 대신 jQuery를 직접 가리키는 문제를 해결할 수있었습니다.

하지만 이제는 인식 된 함수를 얻었으므로, 그 일은 정말 끔찍하게 (요소 배치, 경우에 따라서 만 작동하는 키 탐색) 작동하며 더 중요한 것은 방화 광 콘솔에서 많은 오류 메시지를 볼 수 있습니다. 여기

나는 그들 중 몇 가지를 붙여 넣습니다

$(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 제대로 헤더에로드되고, 내가 (코드가 제거되지 않도록, 액티브 필터 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() 기능은 jQuery를 버전을 무시

1.7 (http://api.jquery.com/on/)

jQuery에 추가되었습니다.

hook_js_alter를 사용하여 원하지 않는 jQuery 버전을 제거하고 jQuery 1.7.1로 대체하십시오.

이 변경 후에 JS 코드의 다른 부분이 손상 될 수 있으므로주의해야하며 필요한 부분에만 사용하십시오.

+0

** 감사합니다. **이 문제는 꽤 똑바로 해결되었습니다. js 코드의 다른 부분에서 오류를 방지하기 위해 해당 정확한보기에만 _js_alter를 사용하려고합니다. – versvs

관련 문제