我想在我的構造函數SmartButton中運行一個名爲makeHighlight的函數。 makeHighlight應該在我點擊SmartButton對象(一個圖像元素)時運行,這就是爲什麼我將屬性'onclick'設置爲makeHighlight的原因。我無法讓它工作,它可能根本無法運行,或者在頁面加載時立即運行。構造函數中的Javascript函數不工作onclick
function SmartButton(buttonId, defaultImage, highlightImage, helpMsg) {
var newLink = document.createElement('a');
newLink.setAttribute('href', '#');
var newImg = document.createElement('img');
newImg.setAttribute('src', defaultImage);
newImg.setAttribute('id', buttonId);
newImg.setAttribute('onclick', "makeHighlight()");
document.body.appendChild(newLink);
newLink.appendChild(newImg);
this.buttonId = buttonId;
this.defaultImage = defaultImage;
this.highlightImage = highlightImage;
this.helpMsg = helpMsg;
function makeHighlight() {
newImg.setAttribute('src', highlightImage);
console.log(this);
}
}
button1 = new SmartButton('button1', 'button1off.jpg', 'button1on.jpg', 'sup');
@jcolebrand它確實因爲該事件的不,鼓泡。如果他指定了'href',那麼它會將他帶到另一個頁面,但JavaScript仍然會啓動(儘管他不會明顯看到效果:))。 – freakish