[英]How to add a onclick event to an element using javascript
我已經使用document.getElementsByClassname創建了一個元素,並希望向該元素添加一個onclick事件,以便當有人單擊該元素時應調用onclick函數。
我嘗試使用事件偵聽器,但是即使我沒有單擊任何函數,此命令也將執行。 使用jQuery我們可以通過綁定click事件來做到這一點,但是我的要求是在javascript /
謝謝!
element.addEventListener("click", alert('clicked'), false);// Add onclick eventListener
var element= document.getElementsByClassName('classname');
getElementsByClassName
返回一個HTMLCollection
,因此即使您在DOM中只有一個具有HTMLCollection
元素,也必須使用索引0來檢索它:
var element = document.getElementsByClassName('classname')[0];
element.addEventListener("click", function(e) {
alert('something');
}, false);
另外,由於只有一個具有類名的元素,因此可以安全地使用querySelector
,它將返回第一個match元素。
var element = document.querySelector('.classname');
^
element.addEventListener("click", function(e) {
alert('something');
}, false);
請注意上面代碼中的點。 querySelector
接受CSS選擇器字符串作為參數。
嘗試這個:
document.getElementsByClassName
始終返回元素數組。
var element= document.getElementsByClassName('classname');
for(var i=0;i<element.length;i++){
element[i].addEventListener("click", function(){alert('clicked')}, false);
}
您必須傳遞函數的引用,而不是添加內聯警報。
var element= document.getElementsByClassName('classname');
function doSomething() {
alert('clicked')
}
// add event listener to element
element.addEventListener("click", doSomething, false);
您可以為此使用.attr()
jquery方法:
$('.classname').attr("onClick", "javascript:alert('clicked'); return false;");
的JavaScript
var element= document.getElementsByClassName('classname');
element[0].onclick = function() { alert('Hello'); };//-- here i used "[0]" to refer first matched element
您可以使用事件委托或DOMNode.matches。
document.addEventListener('click', function(e) {
if (e.target.className == 'classname') // if (e.target.matches('.classname'))
{
//do something
}
});
Please try the following:
var rows = 3;
var cols = 3;
var defaultVal=0;
var mainDiv=document.getElementById("mainDiv")
var arr = []
for (var i = 0; i < rows; i++) {
arr[i] = [];
for(var j=0;j<cols;j++){
arr[i][j]=defaultVal++;
var element=document.createElement("input");
element.type="button";
element.className="left";
element.addEventListener("click", testFunction, false);
element.value=arr[i][j];
mainDiv.appendChild(element);
}
}
function testFunction(){
alert('hi')
}
//Use element.addEventListener("click", testFunction, false);
//Use testFunction and not testFunction() as this "()" invokes the function
我能夠使用以下javascript代碼向元素添加onclick事件
list_title = document.createElement('UL');
list_title.onclick=function() {
// place your code here
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.