简体   繁体   English

使用 JavaScript 在 div 标签上添加点击事件

[英]Add click event on div tag using JavaScript

I have a div tag in my form without id property.我的表单中有一个没有id属性的div标签。 I need to set an on-click event on this div tag.我需要在这个div标签上设置一个on-click事件。

My HTML code:我的 HTML 代码:

<div class="drill_cursor" >
....
</div>

I don't want to add an id property to my div tag.我不想在我的div标签中添加id属性。

How can I add an on-click event on this tag using JavaScript?如何使用 JavaScript 在此标签上添加on-click事件?

Pure JavaScript纯 JavaScript

document.getElementsByClassName('drill_cursor')[0]
        .addEventListener('click', function (event) {
            // do something
        });

jQuery jQuery

$(".drill_cursor").click(function(){
//do something
});

Try this:试试这个:

 var div = document.getElementsByClassName('drill_cursor')[0];

 div.addEventListener('click', function (event) {
     alert('Hi!');
 });

Just add the onclick-attribute:只需添加 onclick 属性:

<div class="drill_cursor" onclick='alert("youClickedMe!");'>
....
</div>

It's javascript, but it's automatically bound using an html-attribute instead of manually binding it within <script> tags - maybe it does what you want.它是 javascript,但它使用 html 属性自动绑定,而不是在<script>标签中手动绑定它 - 也许它可以满足您的需求。

While it might be good enough for very small projects or test pages, you should definitly consider using addEventListener (as pointed out by other answers), if you expect the code to grow and stay maintainable.虽然它对于非常小的项目或测试页面来说可能已经足够了,但如果您希望代码增长并保持可维护性,您绝对应该考虑使用addEventListener (正如其他答案所指出的那样)。

Recommend you to use Id, as Id is associated to only one element while class name may link to more than one element causing confusion to add event to element.建议您使用 Id,因为 Id 仅与一个元素相关联,而类名可能会链接到多个元素,从而导致向元素添加事件时造成混淆。

try if you really want to use class:如果您真的想使用类,请尝试:

 document.getElementsByClassName('drill_cursor')[0].onclick = function(){alert('1');};

or you may assign function in html itself:或者您可以在 html 本身中分配函数:

<div class="drill_cursor" onclick='alert("1");'>
</div>

the document class selector:文档类选择器:

document.getElementsByClassName('drill_cursor')[0].addEventListener('click',function(){},false)

also the document query selector https://developer.mozilla.org/en-US/docs/Web/API/document.querySelector还有文档查询选择器https://developer.mozilla.org/en-US/docs/Web/API/document.querySelector

document.querySelector(".drill_cursor").addEventListener('click',function(){},false)

Separate function to make adding event handlers much easier.单独的函数使添加事件处理程序更容易。

function addListener(event, obj, fn) {
    if (obj.addEventListener) {
        obj.addEventListener(event, fn, false);   // modern browsers
    } else {
        obj.attachEvent("on"+event, fn);          // older versions of IE
    }
}

element = document.getElementsByClassName('drill_cursor')[0];

addListener('click', element, function () {
    // Do stuff
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM