2011-11-17 4 views
0

이제 WordPress 용 플러그인을 몇 개 만듭니다. 모두 별도로 작업해야하지만 함께 작동하도록 구현을 추가하고 싶습니다.다른 자바 스크립트 파일이 동일한 기능을 공유합니다.

우선 모든 스크립트는 내 문제가 시작되는 첫 번째 부분 인 jQuery를 참조하기 위해 사용자 정의 이름을 사용합니다. WordPress에는 모든 값을 채우려는 결합 된 개체가 있습니다. 결합 된 개체의 이름은 myObject입니다.

는 지금은 이것을 시도했지만 작동하지 않습니다

if(typeof myObject.jq !== 'undefined') 
    myObject.jq = jQuery.noConflict(); 

myObject.jq(document).ready(function(){ 

} 

나는 오류 메시지가 'myObject.jq'는 함수가 아닙니다.

나는 더이 완전하게 작동하지 않습니다이

if(typeof myObject.jq !== 'undefined'){ 
    myObject.jq = jQuery.noConflict(); 

    myObject.ajaxcall = function(action){ 
     var dfr = myObject.jq.Deferred(); 
     myObject.jq.ajax({ 
      url:myObject.ajaxurl, 
      type:'post', 
      data:{ 
       action:action, 
       face:myObject.face 
      }, 
      dataType:'json', 
      success:dfr.resolve 
     }); 
     return dfr.promise(); 
    }; 
} 

myObject.jq(document).ready(function(){ 
    // My code here 
} 

처럼 결합 아약스 기능이 확장하려는. 누구나 내가이 일을 어떻게 얻을 수 있는지 알 수 있습니까?

+0

'JQ'속성은 무엇인가에

var myObject = {}; myObject.jq = jQuery.noConflict(); myObject.ajaxcall = function(action) { //You function code }; myObject.jq(document).ready(function(){ //Your code goes here }); 

이 줘야 해 결과를? 그것은 이미 포함되어 있습니다 (당신이 테스트했기 때문에 ** NOT ** _undefined_). –

+0

오, 그건 정말 바보 야! –

답변

0

방금 ​​'정의되지 않은'논리가 뒤집습니다. typeof myObject.jq === 'undefined'이라고 말합니다. jq이 함수가 될 것으로 예상되기 때문에 더 나은 검사는 typeof myObject.jq !== 'function'입니다.

+0

오, 와우, 어리석은 실수. 죄송합니다! –

+0

우리 모두에게 일어납니다.) – Ryan

0

처음 작동하려면 myObjectobject으로 선언해야합니다. 그리고 javaScript는 정의되지 않은 객체 식별자를 자동으로 할당하므로 키가 있는지 여부를 테스트 할 필요가 없습니다. 그래서 다음과 코드가 작동합니다 변경 : 다음 myObject

myObject 
    ajaxcall: function (action) { } 
    jq: function (a,b){return new d.fn.init(a,b,g)} 
+0

오, myObject는 이미 위의 스크립트에서 정의되었습니다. 나는'! =='잘못 했어. 정말 바보 같은 실수 야. Ryan이 정답을 가졌습니다. –

관련 문제