2010-06-14 4 views
0

나는 mootools 라이브러리를 사용하여 내가 만들고있는 위젯에서 애니메이션 & 아약스를 만들고 싶다.위젯에서 mootools 라이브러리를 사용할 때의 호환성?

최종 사용자가 자바 스크립트 한 줄만 배포하도록 위젯이 페이지에 작성되도록 계획합니다.

내 위젯이 이미 다른 라이브러리를 사용중인 페이지에서 사용되는 경우 발생할 수있는 호환성 문제가 우려됩니다.

짧은 테스트는 jacery가 문제를 일으키지는 않지만 scriptaculous가 이미로드 된 경우 자동 실행 기능으로 묶은 경우에도 문제를 보여줍니다.

무엇이 최선의 해결책입니까?

mootools를 독립적으로로드 할 수있는 방법이있어서 제 목적으로 만 사용할 수 있습니까?

저에게 익숙하지 않은 jquery는 매우 높은 네임 스페이스를 가지므로 잠재적으로 문제를 완화하는 대신 jquery를 사용하는 것이 좋습니다.

mootools를 복사하여 내 자체 실행 기능에 붙여 넣을 수 있습니까?

nb : mootool의 setStyle 메소드를 사용하여 프로토 타입과 함께 사용할 때 다음 오류가 발생합니다.

element.style is undefined

element.style.cssText += ';' + styles;

답변

1

Mootools의를 사용하는 방법이 없습니다. 개발자들은 mootools를 네임 스페이스로 사용하지 않고 사이드 프로토 타입을 따라 실행한다고 말하면서 코어를 변경하려고 시도합니다 (1 참조).

jQuery 또는 다른 네임 스페이스 라이브러리 (Dojo와 YUI가 모두 있다고 믿는다.)를 사용하는 것이 좋지만, 오버 헤드가 필요하지 않은 경우 좋은 오래된 - 패션 JS.

  1. https://mootools.lighthouseapp.com/projects/2706/tickets/219-mootools-namespace
1

할 수 있습니다하지 "네임 스페이스"Mootools의. 프로토 타입 라이브러리입니다. 당신은 당신이 prototype과 함께 사용하려고하고 있음을 나타냅니다. 이것은 서면으로 볼 때 여전히 프로토 타입 라이브러리입니다 (그것들과 멀리 떨어져 있다는 이야기가 있습니다).

기본적으로 서로 2 개의 프레임 워크가 서로 예측할 수없는 결과를 가져올 수 있기 때문에 라이브러리의 메소드가 변경되는 프로토 타입에 우선 할 라이브러리가 있는지에 대한 보장이 없습니다.

mootoolsjquery 또는 기능적인 다른 lib와 함께 행복하게 공존 할 수 있습니다. 또한 이미 $을 정의하는 항목이 있는지 확인하고 사용할 수없는 경우 (말하면 $ === jQuery), 다시 document.id()를 사용하도록 되돌립니다.

페이지가 이미 scriptaculous을 사용하고 있다면, (이상적인 세계에서)이 효과를 사용해야합니다.다음 최고의-것은, 당신은 jquery을 시도 할 수 있지만, 간단한 위젯을 위해 (또는 2 프레임 워크) BTW

에 대한 말씨의 AddThis 위젯 다시 Mootools의 동안을 포함하는 데 사용하며 모든 페이지에게 그것을 깰하지 않았다 임베디드되어 있으므로 할 수 있다고 생각합니다. 유감스럽게도 그들은 바닐라 밥으로 이사 한 것 같습니다 ...

관련 문제