2016-01-25 103 views
0

我有一個html文件和js文件我想在html中單擊按鈕時執行JS。爲此,我可以在html中使用onclick事件,但條件是我不應該修改HTML文件。在JS中onClick eventlistener而不使用HTML中的onclick函數

我試圖添加eventlistener在我的JS,但沒有奏效。

<p align=center> 
    <button class="stdbutton" id=button2 name=button2> 
     Click Me 
    </button> 
</p> 
$("button2").click(function() { 
    alert("button2 clicked"); 
}); 

請參閱撥弄鏈接瞭解詳細參考:http://jsfiddle.net/gqpr0g9w/

在此先感謝

+2

你的問題標有jQuery,但你的小提琴使用Mootools ...我很困惑。如果你更改小提琴jQuery和修復選擇器添加'#',那麼它工作正常:http://jsfiddle.net/gqpr0g9w/2/ –

+0

@RoryMcCrossan:我認爲你說得對,..爲什麼你不讓你的評論作爲一個答案.. –

+2

這不是一個真正的答案,將有助於任何人在未來所以如果這確實解決了它,這可能是最好的OP刪除這個問題。 –

回答

-1

好了,你要使用jQuery的,但包含在HTML的任何的jQuery文件。事實上,沒有包含在HTML腳本都不像

<script src="lib/jquery-2.1.4.min.js"></script> 
<script src="js/myJavaScript.js"></script> 

我不認爲你可以做到這一點無需修改HTML文件。

0

嘗試FIDDLE

基本上先用你的小提琴問題是你正在使用JS庫以外的jQuery。沒有引用jquery庫,jquery代碼將不會執行。

其次,你使用的是無效的選擇,

$("button2") 

您可以用基於ID選擇器(選擇),按照您的標記

$("#button2") 

最後嘗試包裹替換此在document ready event下的jquery關閉下的代碼可以確保在瀏覽器中加載相關對象時該事件將被附加。

最後會變成

$(document).ready(function() { 
    $("#button2").click(function() { 
    alert("button2 clicked"); 
    }); 
}); 

希望它爲你..

0

在你的jsfiddle包括jQuery的。使用下面的一個使用jQuery

$("#button2").on("click", function() { 
    alert("button 2 clicked"); 
}); 

$("#button2").click(function() { 
    alert("button2 clicked"); 
}); 
0

情況下,jQuery是包含在HTML附加的事件偵聽器點擊: js文件 -

$("#button2").click(function() { 
    alert("button2 clicked"); 
}); 

//注意表示我們正在尋找ID的單詞「button2」之前的#號#

jQuery的情況下,但不包括在html:

<script src="lib/jquery-2.1.4.min.js"></script> 
<script src="js/myJavaScript.js"></script> 

jQuery腳本必須首先被包括 然後,如上所示,可以執行相同的代碼。