2013-09-03 5 views
0

아래의 js 객체는 인스턴스 생성 후 지정된 이미지를 생성합니다. 브라우저에서 이미지를 클릭하여 sayQuote을 실행하면됩니다. 제안?js 객체에서 'onclickable'이미지 만들기

function CharType() 
{ 
    this.charImage = function(whichImage) 
     { 
     var image = document.createElement("img"); 
     image.src = "characters/"+whichImage; 
     document.body.appendChild(image); 
     } 
    function sayQuote() 
     { 
     alert(getQuote()); 
     } 
// this.onclick = sayQuote(); // nope, that doesn't do it! 
} 

인스턴스화 :

var stickfigure = new CharType(); 
stickfigure.charImage("stickfigure.png"); 
+0

당신이하고자하는 일에 대한 더 큰 그림을 보여주고 싶을 수도 있습니다. –

+0

거의 이것뿐입니다. getQuote 함수는 따옴표를 전달합니다. 위의 인스턴스를 추가했습니다. –

답변

0

이 시도.

function CharType() 
{ 
    function sayQuote() 
    { 
      alert(getQuote()); 
    } 

    this.charImage = function(whichImage) 
    { 
     var image = document.createElement("img"); 
     image.src = "characters/"+whichImage; 
     image.onclick = sayQuote; 
     document.body.appendChild(image); 
    } 
} 

기본적으로 this.charImage에서 생성 된 이미지는 OnClick 속성이 아니라 사용자가 만든 그것을 둘러싼 새로운 객체를 사용하여 이미지의 개체입니다.

+0

전체 이해가됩니다! 아아, 내가 제시 한 코드가 주석 처리되지 않았을 때와 똑같은 일을합니다. 즉시 sayQuote를 실행하고 onClick을하지 마십시오. –

+0

내 잘못 했어,'image.onclick = sayQuote; 아니'image.onclick = sayQuote();' – Julius

+0

예! 그것은 또한 Sudhir 's와 마찬가지로 작동합니다. 그 차이가 왜 발생하는지 설명해 주시겠습니까? 감사. –

0
function CharType() 
{ 
    function sayQuote() 
    { 
     alert(getQuote()); 
    } 

    this.charImage = function(whichImage) 
    { 
     var image = document.createElement("img"); 
     image.src = "characters/"+whichImage; 

     image.addEventListener("click", this.sayQuote, false); 

     document.body.appendChild(image); 
    } 
} 
관련 문제