jQuery怎么判断元素是否绑定了事件?

winzond 2018-11-30 05:54:04
$("#leftCtrl").on("click", function () { var test; });
var X = false;
var $events = $("#leftCtrl").data("events");
if ($events && $events["click"]) X = true;

这样判断不成功,X始终是false,请教该如果判断元素是否已经绑定该事件?如果不去判断,多次绑定同样的事件同样的操作,会不会影响效率?
...全文
297 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
winzond 2018-11-30
  • 打赏
  • 举报
回复
引用 3 楼 天际的海浪 的回复:
JQuery1.8版本取消了obj.data方法,改为$._data方法
https://www.jb51.net/article/52066.htm
真的是高手,连百度都百度不到的东西,是怎么找到相关内容的都是去读英文文档吗?
winzond 2018-11-30
  • 打赏
  • 举报
回复
引用 2 楼 讨厌走开啦 的回复:
可以这么试着判断


var test = document.getElementsById("container");
console.log("是否绑定click:" + test.onclick === null);
谢谢兄弟!不过,一、语法错误啊;二、修改成正确语法后,无论绑定不绑定都返回true
天际的海浪 2018-11-30
  • 打赏
  • 举报
回复
JQuery1.8版本取消了obj.data方法,改为$._data方法 https://www.jb51.net/article/52066.htm
讨厌走开啦 2018-11-30
  • 打赏
  • 举报
回复
可以这么试着判断

var test = document.getElementsById("container");
console.log("是否绑定click:" + test.onclick === null);
天际的海浪 2018-11-30
  • 打赏
  • 举报
回复
jq没有提供判断的方法,也不要多次绑定同样的事件,因为多次绑定在触发事件时也会多次执行
花生米AJAX-UI系列之:基于JQUERY的浮动层(右键)列表菜单0.2改进版 改版本是“使用JQUERY 自创的自定义右键菜单插件 ”的重大改进,原始版本不再使用! 可以对表格,列表,或者单个DOM容器进行右键绑定 菜单项的文字、图标样式,调用方法均可自定义,图标样式定义更为灵活 菜单中分隔符的多少和位置也可自定义 提供了菜单项中那一项被作废(即点击了也不能调用其方法的状态),哪一项被重新启用的方法 正式支持级联式多层子菜单显示,子菜单与其父结点所在父级菜单呈树形数据结构关系。 且子菜单可以删除,也可以把一个叶子结点扩展成为子菜单列表的父结点。 子菜单也是一个GooContextMenu类对象,保存在父结点所在菜单GooContextMenu类对象的$childMenu数组中, 一些方法调用实际上为递归式调用。 菜单显示不再以鼠标事件发生点e为坐标,会根据浏览器视窗的大小以及菜单的宽高、事件发生的坐标为判断条件, 以确保菜单显示时不会让浏览器的滚动条出现或长度改改,同时又能在现有视窗中完整显示菜单所有内容。 在绑定能触发菜单显示的事件时,可用两种方法: //绑定一个父框架以操作里面的多项子元素(只需绑定一次),用来代替对每个子元素绑定 //单单只绑定一个DOM元素(参数jq为一个JQUERY对象) 两种方法都要传一个必要的事件名称参数,如contextmenu右击,mousedown鼠标按下,比原来只能右键弹出更灵活。 改变了点击菜单项目时,触发方法的传参定义,现在只传两个参数:(点击菜单项目单元的ID,触发浮动菜单显示的DOM容器的ID)

87,899

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧