用原生JS写一个点击事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用原生JS写一个点击事件相关的知识,希望对你有一定的参考价值。

<div class="aa"></div>
<div class="aa"></div>
<div class="aa"></div>

<div class="bb"></div>
<div class="bb"></div>
<div class="bb"></div>
我要用JS实现点击class=aa的div控制class=bb 的CSS样式 我是做浏览器插件不能在aa里面写onclick

参考技术A  document.querySelectorAll(".aa").forEach((item, index) => 
        item.onclick = () => 
            document.querySelectorAll(".bb")[index].style.color = "red";
        
    )

 请采纳

本回答被提问者采纳
参考技术B $(".aa").onclick(function ()
//改变class=bb 的CSS样式 );
参考技术C <script>
window.onload=function()
var aa=document.getElementsByClassName("aa");
var bb=document.getElementsByClassName("bb");
for(var i=0;i<aa.length;i++)
aa[i].index=i;
aa[i].onclick=function()
for(var j=0;j<bb.length;j++)
bb[j].style.backgroundColor=(j==this.index)?"red":"transparent";




</script>
参考技术D 说具体一点嘛。是分别控制还是一个aa可以控制三个bb呢。给aa绑定监听,给要变化的div添加function就好了嘛

原生js如何绑定a连接点击事件?

可以用js的事件委托啊。

比如你的分页生成的代码会插入到一个<div id="pager"></div>里,在生成html片段时为a设置一个属性用来表示页数,如:<a href="#" data-page="1">第1页</a>

事件委托的js代码如下:

$('#pager').delegate('a', 'click', function(e)
e.preventDefault(); //阻止a的默认事件
var page = $(this).data('page'); //从当前a标签属性中取出页码

//处理分页,如果是跳转:
location.href = "/pagename.php?page=" + page;

//如果是异步取分页数据:
var page_api = '/pagedata.php?page=' + page;
$.get(page_api, function(data, textStatus, jqXHR)
//使用ajax获取数据
//拼装数据并填充到数据显示区:
$('#list-container').append( createHTML(data) );

//重新生成分页区
createPager( page );
);
);

function createHTML(data)
//拼装数据的函数


function createPager(curPage)
//生成分页的函数
var tpl = '<a href="#" data-page="#index">第#index页</a>';

//...

参考技术A

    var obj = document.getElementById("p"); obj.addEventListener("click",function(ev) var target = ev.target; if(target.className.indexOf(box氦孩份绞莓悸逢溪抚娄9;)!==-1)return target;这种情况下,

    点击的就是box元素,比如box里面有个padding的值,返回的就是自己。

    if(target == obj)return false;这种情况下,点到的是box与box之间的空隙,比如box有个margin-bottom:20px

    返回false while(target.className.indexOf(box) === -1) target = target.parentNode; return target;返回的target即是你要的box元素 )

    如果可以用jquery,直接用代理很少的代码就可以实现,如果用原生的话,可能就要写这么一堆代码了

以上是关于用原生JS写一个点击事件的主要内容,如果未能解决你的问题,请参考以下文章

C++点击事件里的事件怎么写?

js原生模拟点击事件

手机页的点击事件怎么写,是不是还要加载jquery mobile? 能不能同时加载电脑版jquer

如何在UILable上添加点击事件

原生js实现点击目标区域外侧触发事件

原生js实现点击目标区域外侧触发事件