div怎么添加一个点击事件onClick

div怎么添加一个点击事件onClick,第1张

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />

<title>添加table列</title>

<script type="text/javascript" src="http://www.sz886.com/js/jquery-1.9.1.min.js"></script>

<script type="text/javascript">

$(document).ready(function(e) {

$(".jquery_div").click(function(){

alert("jquery单击")

})

})

function js_click(){

alert("js_单击")

}

</script>

</head>

<body>

<div onclick="js_click()">js_单击</div>

<div class="jquery_div">jquery单击</div>

</body>

</html>

遇到一个需求,要给一个 div 添加 blur 事件,具体情况是: el-seclect 不满足项目下拉列表的需求,找了一些插件,也没发现比较好用的,所以就决定自己用 div 实现效果,也就遇到了当鼠标点击其他空白处时, div 要隐藏起来的问题

刚开始毫无思路,查了查资料,发现还真的可以

1. 直接给 div 加 blur 事件

不生效,然后发现是 div 不能直接加 blur 事件

2.用 tabindex

差不多就是这种: https://blog.csdn.net/u013112461/article/details/90747257 ,效果很奇怪,不符合需求

最后想到了,用 vue 去监听所有的点击事件,从里面筛选出来这个 div ,除了点击这个 div ,其他地方全部隐藏

错误写法:

这个想法没问题,但是运行之后,控制台报错

Uncaught TypeError: this.$refs.boxRef.contains is not a function at HTMLDocument.eval ,就很烦,然后查了好久,终于找到一篇相关博客,原因就是 用js原生获取dom的方法代替ref方式

修改之后:

到这里就成功的实现了 div 的 blur 效果,学废了学废了!

贴上大佬博客: https://www.freesion.com/article/33241074504/

具体回答就是在div上写ng-click="cbClick()"这样的方式来实现.angular框架推崇的是声明式ui,所以基本上回调事件写在html元素上比较符合约定,或者你也可以把事件封装到指令中. 用angular的话,最好不要考虑jquery的思路来做程序,最好的方式就是考虑下angular特有的方式,比如双向数据绑定,控制器,指令来完成这类型的功能,不要去考虑细节怎么实现的,要从抽象的层面去实现,不然angular能做的,jquery也能做,不要把一个angular程序写出jquery


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11894654.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存