2009-12-26 10 views
3

일부 jQuery/기본 자바 스크립트 프로그래밍과 관련된 개인 프로젝트를 진행 중입니다. 누군가 내 코드에서 겪고있는 문제를 분명히 할 수 있기를 바랍니다. Javascript로 만든 객체와 DOM의 일부인 객체 간의 관계에 대해 혼란스러워합니다.DOM에 삽입 된 Javascript 개체에 대한 설명?

JQuery UI (탭 기능)를 사용할 때 내 프로그램은 Javascript 디렉토리에서 내 객체를 조작하는지 또는 DOM API에서 먼저 액세스하는지에 따라 두 개의 참조가 동등하지 않다. 예를 들어

:

$("#tabs").tabs(); 

그러나 다음하지 않는 : : 이제

myObject = $(document.createElement("div")).attr("id", "tabs"); 
$("body").append(myObject); 

, 나는 다음 예제가 제대로 작동하는지 발견

$(myObject).tabs(); 

내가, 내가 잘못 알고 $ ("# tabs")를 통해 가져 오는 객체가 다른 객체이거나 creat 객체와 다르게 동작한다고 가정합니다. 수동으로 자바 스크립트 (myObject)에?

개체를 DOM에 삽입하면 호출되는 메커니즘이 있습니까? DOM에 삽입 한 후 ID 필드를 통해 다시 검색하면 안되니?

+0

이미 jQuery 객체가 있으므로 이미 지적한 cletus와 같이'$ (myObject) .tabs()'를 쓸 필요가 없습니다. 올바른 방법은'myobject.tabs()'를 실행하는 것입니다. – kiamlaluno

답변

5

원시 JS 메서드를 사용하여 요소를 만드는 것은 $(...)과 같은 표현식에서 찾은 요소가 jquery 객체로 래핑된다는 점을 제외하면 jQuery에서 참조하는 요소와 다를 바 없습니다.

당신은이 일을하고 있기 때문에 :

$(myObject).tags(); 

를 :함으로써

myObject.tabs(); 

:이 작업을 수행 할 수 있어야하므로

myObject = $(document.createElement("div")).attr("id", "tabs"); 

당신은 이미 JQuery와 개체가 당신은 효과적으로 이것을하고 있습니다 :

$($(document.createElement(...)...); 

그리고 예상되는 동작이 확실하지 않습니다. 또한 명심

이 작업을 수행 할 수 있습니다 (이 방법을 선호한다) :

var myObject = $("<div></div>").attr("id", "tabs"); 

var는 (당신은 시간의 95 %를 원하는되는) 범위에서 지방하게하고 당신이 만들 수 있습니다 원시 JS 메서드를 사용하지 않고 jquery로 임의의 마크 업

+0

왜 이것이 downvoted인지 알고 싶습니다 ... – cletus

+0

+1은'var'과 단순한 요소 생성을위한 것입니다. 이것이 왜 투표에 실패했는지 보지 마라. –

+0

멋진 조언을 주셔서 감사합니다. 나는 $ ("

) 접근법을 좋아한다.$ ("
") –

관련 문제