2010-02-15 3 views
1

프로그램에서 저는 자바 스크립트로 이벤트를 보내는 노드에 액세스 할 수 있어야합니다.javascript 객체 메서드에서 eventListener를 사용하여 노드를 찾습니다.

this은 내 코드의 개체를 참조하기 때문에 사용하지 못했습니다. 그래서 다음은 작동하지 않습니다. 나는 기능 createNode()를 호출 할 때

var node = new node(); 

// Node Object 
function node() { 

// Create Sibling Node 
this.createSibling = function() { 
var node = createNode(); 
this.parentNode.appendChild(node); } } 

는 이벤트 onclcick이 다른 링크를 node.createSibling()node.createChild() 전화에 부착되어있는 링크를 어셈블합니다.

나는 노드를 클릭하는 방법을 모르기 때문에 현재 var NODETREE을 부모로 사용하고 있습니다. 이것은 나를 자신의 자녀와 형제 자매와 함께 노드를 만들 수 없게합니다. 주 노드 만이 그것을 얻을 수 있습니다.

var node = new node(); 

    // Node Object 
    function node() { 

    // Instance Veriables  
    var NODETREE = document.getElementById('node-tree'); 

    // Create Sibling Node 
    this.createSibling = function() { 
    var node = createNode(); 
    NODETREE.appendChild(node); } } 

어떻게 코드의 부하를 만들 필요없이 즉, 클릭되고 부착 된 onclcick 이벤트가있는 노드에 액세스 할, 그래서 나는 내가 만든뿐 아니라이 노드에 대한 어린이와 형제 자매를 만들 수 있습니다 트렁크?

참고 :

나는 jQuery를 또는 다른 프레임 워크없이 할 필요가있다.

+0

나는 기사 http://www.dustindiaz.com/add-remove-elements-reprise/를 발견하지만 난 코드를 이해하지 않습니다. 그것은 익숙하지 않은 구문을 사용합니다. JavaScript를 처음 사용했습니다. – Kevin

답변

0

요소에 이벤트 처리기가 있으면 Event 개체가 이벤트 처리기로 전달됩니다. 이 이벤트 객체는 이벤트를 트리거 한 노드에 대한 참조를 포함합니다. 이것은 당신이 필요합니다 그들이 브라우저 감지 ANS 특정 구현을 구현하기 때문에 프레임 워크를 사용하는 또 다른 RESON입니다 -

그래서 ...

var createSibling = function(_event){ 
    var e = this; // the element this function is actually attached to 
    var event_e = _event.target; //another way to get at the element clicked 

    // do stuff 
}; 

document.getElementById('myElement').onClick = createSibling; 
document.getElementById('myElement').captureEvents(Event.CLICK); 

문제는 다른 것들에 대한 속성 이름은 크로스 브라우저 차이입니다 당신이 그것을 사용하지 않으면 할 일.

는 일부 고급 자세한 내용은 quirksmode.org를 참조하십시오 http://www.quirksmode.org/js/introevents.html

+0

객체의 메서드로 작동합니까? 'this.createSibling = function() {...}'왜냐하면 'this'를 사용하면 'new node();'객체를 검색하기 때문입니다. – Kevin

+0

잠깐 혼란스러워 보였습니다. (혼란 스럽네요.) 객체 란 무엇입니까? createSibling 메소드를 보유하고있는 DOMElement가'theElement.onclick = function (event) {this.createSibling();};과 같은 것을하면 객체가 무엇인지, 객체를 트리거하는 요소와의 관계는 무엇인가? 이벤트 (당신이한다면 ..)? – prodigitalson

+0

기본 질문에 업데이트 된 코드 기반이 있습니다. 죄송합니다. – Kevin

관련 문제