2016-09-07 1 views
0

내가 뭘하고 싶은데요 DOM 요소의 특정 집합에 대한 클릭 이벤트를 설정합니다.클릭 된 요소 저장 및 다른 개체에서 액세스

나중에 어떤 정보를 검색해야 할 수도 있으므로 어떤 요소를 클릭했는지 기억하고 싶습니다.

가능한 경우 다른 JS 개체에서 액세스 할 수 있기를 원합니다. 다음은

<ul> 
    <li>Item 1</li> 
    <li>Item 2</li> 
    <li>Item 3</li> 
</ul> 
<button> 
     Which have you clicked on? 
</button> 

<script> 
var listItem = { 
    elementHandle: $('li'), 
    instanceClicked: '', 
    bindEventHandlers: function(){ 
     $(this.elementHandle).click(this.alertTheContent); 
    }, 
    alertTheContent: function(){ 
     this.instanceClicked = $(this); 
     alert(this.instanceClicked.html()); 
    } 
} 

var button = { 
    elementHandle: $('button'), 
    bindEventHandlers: function(){ 
     $(this.elementHandle).click(this.showListItemClicked); 
    }, 
    showListItemClicked: function(){ 
     console.log(listItem.instanceClicked); 
    } 
} 

listItem.bindEventHandlers(); 
button.bindEventHandlers(); 
</script> 

내가 가까이 오전하지만 showClickedItem() 함수의 콘솔 로그 ''를 반환 생각 ... 내가 지금까지있는 것입니다. 처음에 listItem 객체를 만들 때처럼.

찾아주세요 여기에 바이올린 thisli하지 listItem

alertTheContent: function(){ 
    listItem.instanceClicked = $(this); 
    alert(listItem.instanceClicked.html()); 
} 

DEMO 즉 클릭 핸들러를 호출 현재 요소 컨텍스트를 참조로 당신은 alertTheContent 기능에 listItem 대신 this를 사용할 필요가 https://jsfiddle.net/rbfaxw12/

+0

Onclick 왜 요소에 클래스를 추가하지 마십시오. 그래서 앞으로는 해당 클래스를 사용하여 특정 클릭 된 DOM의 가치를 얻을 수 있습니다. – Samir

답변

0

대신 this.instanceClicked = $(this); use listItem.instanceClicked = $(this);

관련 문제