Drupal 7 및 jQuery — $ 달러 기호


18

jQuery 이외의 JS 라이브러리를 사용하지 않을 계획이라면 jQuery의 별칭으로 $를 제거하는 jQuery.noConflict ()에 대한 Drupal의 호출이 필요한 이유가 있습니까?

$ 별칭을 제거 할 필요가 없다고 가정하면 jQuery 코드를 항상 (function ($) {...})에 래핑하지 않고도 보편적으로 되돌릴 수있는 방법이 있습니까?

답변:


11

내가 생각해 낸 해결책은 다음과 같습니다.

사용자 정의 테마에 포함시킨 첫 번째 JS 파일의 맨 위에 다음 줄을 추가하면됩니다.

$ = jQuery;

완료 :)


롤, 고마워! jQuery가 정의 된 이유를 파악하려고했지만 $그렇지 않았습니다. 스 니펫을 모듈로 만들어야합니다 : D
CamelBlues

그렇게 var $ = jQuery;
하세요

6

아니오, 당신은 할 수 없습니다 (글쎄, 아마도 할 수는 있지만 그렇게해서는 안됩니다).

어쩌면 어느 시점에서 모듈은 다른 사이트의 다른 프로젝트에서 사용되며 해당 사이트는 다른 JS 라이브러리를 사용합니다 (작성하는 모든 drupal 모듈은 자동으로 GPL이며 클라이언트는 원하는 방식으로 사용할 수 있음을 기억하십시오).

이 두 줄을 모든 js 파일에 추가하는 것은 그렇게 복잡하지 않습니다. :)


나는 동의한다; 호환성을 위해 Drupal에서 $ 를 jQuery의 별칭으로 사용하지 않고 jQuery를 사용하여 항상 JavaScript 코드를 래핑하는 것이 (function($){…})좋습니다.
kiamlaluno

그 시점에서 모듈에서 모든 $를 jQuery로 바꾸기 위해 찾기 및 바꾸기를 수행하는 것은 어렵지 않습니다.
maxedison

@maxedison PHP와 JavaScript를 혼합하면 어떻게됩니까? JavaScript로 조작 된 텍스트 문자열에 달러 기호를 사용합니까?

1
당신은 질문자가 "가정"한 것을 완전히 무시했습니다. 특히 타사 플러그인을 임베드 할 때 유효한 질문과 힌두 인입니다. $없이 작동하도록 모든 파일을 편집해야하며 매번 업데이트해야합니다. 찾기 및 바꾸기는 더 복잡한 플러그인에서도 작동하지 않습니다. 글로벌 범위가 될 수 있기 때문입니다. 수정 tbh가 필요합니다.
빨간색

저는 인터넷에서 "$ ()를 사용할 때마다 신이 새끼 고양이를 죽입니다."라는 문구를 만들려고합니다. 새끼 고양이를 생각해보십시오.
aendrew

0

이러한 종류의 질문에 모듈을 사용하려는 경우 가능한 해결책이 될 수도 있습니다.

jQuery 달러

이 모듈을 사용하면 개발자가 $를 사용하여 jQuery를 명시 적으로 호출하거나 Drupal 7에서 특수 클로저를 사용하는 대신 jQuery 라이브러리에 액세스 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.