赞
踩
顺便整理一下各种触发
- window.onload=function(){
- //绑定元素,执行对应事件 鼠标双击(ondblclick)
- //鼠标双击事件ondblclick
- document.getElementById('d2').ondblclick=function(){
- alert('我是双击显示的');
- }
- }
- window.onload=function(){
- //绑定元素,执行鼠标点下操作 鼠标点下(onmousedown)
- document.getElementById('d3').onmousedown=function(){
- alert('我是鼠标点下提示');
- }
- }
- window.onload=function(){
- //绑定元素,执行鼠标抬起事件 鼠标抬起(onmouseup)
- document.getElementById('d4').onmouseup=function(){
- alert('鼠标抬起的提示');
- }
- }
- window.onload=function(){
- //绑定元素,执行鼠标移动事件 鼠标移动(onmousemove)
- document.getElementById('d5').onmousemove=function(){
- alert('鼠标移动的提示');
- }
- }
- window.onload=function(){
- //绑定元素,执行鼠标移入事件 鼠标移入(onmousemove)
- document.getElementById('d6').onmouseover=function(){
- alert('鼠标移入操作');
- }
- }
- window.onload=function(){
- //绑定元素,执行鼠标移出事件 鼠标移出(onmouseout)
- document.getElementById('d7').onmouseout=function(){
- alert('鼠标移出操作');
- }
- }
- $('button').click(function() {
- alert('你点击了按钮!');
- });
- $('#myElement').mouseenter(function() {
- alert('鼠标进入了元素!');
- }).mouseleave(function() {
- alert('鼠标离开了元素!');
- });
- $('#myElement').mousedown(function() {
- alert('鼠标按钮被按下!');
- }).mouseup(function() {
- alert('鼠标按钮被释放!');
- });
- $('#myElement').mousemove(function(event) {
- alert('鼠标位置:X=' + event.pageX + ', Y=' + event.pageY);
- });
- $('#myElement').hover(
- function() {
- alert('鼠标进入了元素!');
- },
- function() {
- alert('鼠标离开了元素!');
- }
- );
- $(document).ready(function() {
- $('#myElement').on('click', function(event) {
- var x = event.pageX;
- var y = event.pageY;
- alert('你在位置 X=' + x + ', Y=' + y + ' 点击了元素!');
- });
- });
-
-
- $("#myDiv").css("position", "relative").append("<div class='overlay'></div>");
-
-
- // 样式可自行修改
- .overlay {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- background-color: rgba(0, 0, 0, 0.5);
- pointer-events: none;
- }
我的目的是在一块div中 移入 内部不能操作
同时我也禁用了 鼠标 、 键盘 、 触屏 等操作
- var isMouseOver = false;
- $('.tablediv1').on('mouseover', function() {
- var $this = $(this);
- if (!isMouseOver) {
- isMouseOver = true;
- $this.css("position", "relative").append("<div class='overlay'></div>");
- console.log('鼠标移入操作');
- // 一次性绑定需要阻止的事件
- $this.on('mousedown touchstart keydown wheel mousewheel DOMMouseScroll', function(e) {
- e.preventDefault();
- e.stopPropagation();
- console.log('鼠标移入阻止的事件');
- return false;
- });
- }
- }).on('mouseout', function() {
- var $this = $(this);
- isMouseOver = false;
- // 在鼠标移出时,可以考虑移除之前绑定的事件处理器,恢复交互能力
- $this.off('mousedown touchstart keydown wheel mousewheel DOMMouseScroll');
- console.log('鼠标移出阻止的事件');
- $('.overlay', $this).remove(); // 移除之前添加的overlay元素
- });
-
- <div id="myDisabledDiv" class="layui-layer-wrap">
- 内容
- </div>
-
-
- ===================================
-
-
- #myDisabledDiv.disabled {
- pointer-events: none;
- opacity: 0.6;
- user-select: none;
- }
-
-
- ===================================
-
-
-
-
-
- // 初始化时检查是否需要禁用
- disableDivWhenNeeded('#myDisabledDiv');
-
- // 假设有一个按钮用于切换禁用状态
- $('#toggleDisable').click(function(){
- var div = $('#myDisabledDiv');
- if(div.hasClass('disabled')){
- div.removeClass('disabled');
- enableDivEvents(div);
- } else {
- div.addClass('disabled');
- disableDivEvents(div);
- }
- });
- });
-
- function disableDivEvents(div) {
- div.on('mousedown touchstart keydown wheel mousewheel DOMMouseScroll contextmenu', function(e){
- e.preventDefault();
- e.stopPropagation();
- return false;
- });
- }
-
- function enableDivEvents(div) {
- div.off('mousedown touchstart keydown wheel mousewheel DOMMouseScroll contextmenu');
- }
-
- function disableDivWhenNeeded(divSelector) {
- // 根据你的业务逻辑判断是否需要禁用
- var shouldDisable = true; // 这里替换成你的条件判断
- if (shouldDisable) {
- $(divSelector).addClass('disabled');
- disableDivEvents($(divSelector));
- }
- }
由于都框架问题还有浏览器插件会拦截然后给了警告不能触发 就有了下面的
第三种办法:
-
-
- // 初始化时检查是否需要禁用
- disableDivWhenNeeded('#myDisabledDiv');
-
- // 假设有一个按钮用于切换禁用状态
- $('#toggleDisable').click(function(){
- var div = $('#myDisabledDiv');
- if(div.hasClass('disabled')){
- div.removeClass('disabled');
- enableDivEvents(div);
- } else {
- div.addClass('disabled');
- disableDivEvents(div);
- }
- });
- });
-
- function addPassiveEventListener(element, eventName, handler) {
- element.addEventListener(eventName, handler, { passive: true });
- }
-
- function removePassiveEventListener(element, eventName, handler) {
- element.removeEventListener(eventName, handler, { passive: true });
- }
-
- function disableDivEvents(div) {
- addPassiveEventListener(div.get(0), 'wheel', function(e){
- e.preventDefault();
- e.stopPropagation();
- return false;
- });
- addPassiveEventListener(div.get(0), 'touchstart', function(e){
- e.preventDefault();
- e.stopPropagation();
- return false;
- });
- div.on('keydown mousewheel DOMMouseScroll contextmenu', function(e){
- e.preventDefault();
- e.stopPropagation();
- return false;
- });
- }
-
- function enableDivEvents(div) {
- removePassiveEventListener(div.get(0), 'wheel', null); // 注意这里第二个参数为null,因为我们不传递具体的handler
- removePassiveEventListener(div.get(0), 'touchstart', null);
- div.off('keydown mousewheel DOMMouseScroll contextmenu');
- }
-
- function disableDivWhenNeeded(divSelector) {
- // 根据你的业务逻辑判断是否需要禁用
- var shouldDisable = true; // 这里替换成你的条件判断
- if (shouldDisable) {
- $(divSelector).addClass('disabled');
- disableDivEvents($(divSelector));
- }
- }
更换过后的触发 。。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。