`
epy
  • 浏览: 326046 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

按下鼠标并拖到按钮外松开,如何触发click事件?

阅读更多

经过在ChromeIEFirefox上测试,发现在按钮上按下鼠标,拖动到按钮外松开,可以触发mousedown事件,但无法触发mouseupclick事件。在这种情况下,如果想触发按钮的mouseupclick事件,应该怎么做呢?

 

解决方法:

  定义一个JS变量,表示按钮是否按下,初始化为false。在按钮mousedown事件的响应函数里,将这个变量置为true。然后监听整个页面的mouseup事件,在响应函数里,判断变量是否为true;如果不是true,啥都不做;如果是true,说明之前刚刚按下了按钮,就调用按钮的mouseupclick响应函数,同时将变量置为false

也可以用hidden元素(<input type="hidden">)或按钮的隐藏属性来记录按钮的状态。

 

一个例子:

<!DOCTYPE html>
<html>
<head>
<title>buttonTest.html</title>
<meta name="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="../js/jquery-1.7.2.js"></script>
</head>

<body>
  <br>
  <br>
  <button type="button" id="button1" _status="up">Click</button>
  <div id="infoDiv"></div>
  <script type="text/javascript">
      $(document).ready(function(){
      	$("#button1").mousedown(function(){
      		$(this).attr("_status", "down");
      		$("#infoDiv").append("<div>Mouse down</div>");
      	});
      	
      	$("body").mouseup(function(){    // 也可以用$(document).mouseup
      		if ($("#button1").attr("_status")=="down") {
      			$("#button1").attr("_status", "up");
      			$("#infoDiv").append("<div>Mouse up</div>");
      		}
      		
      	});
      	
      	$("#button1").click(function(){
            $("#infoDiv").append("<div>Mouse clicked</div>");
          });
      });
    </script>
</body>
</html>

 

0
0
分享到:
评论

相关推荐

    9个鼠标触发事件

    ### 9个鼠标触发事件详解 ...最后,了解事件触发的顺序对于避免逻辑错误也很重要,例如在同一个元素上按下并松开鼠标右键时,只会触发 `mousedown` 和 `mouseup` 事件,而不会触发 `click` 事件。

    鼠标触发的事件,JS脚本

    4. onMouseUp:鼠标按下后,松开时激发的事件。 5. onMouseOver:当鼠标移动到某对象范围的上方时触发的事件。 6. onMouseMove:鼠标移动时触发的事件。 7. onMouseOut:当鼠标离开某对象范围时触发的事件。 这些...

    js 前端鼠标拖动事件实例

    2. `mousemove`事件:当用户在页面上移动鼠标时,只要鼠标按钮保持被按下状态,就会持续触发此事件。这个事件是实现拖动的核心,开发者需要在处理函数中计算鼠标当前位置与初始位置的差值,并据此更新元素的位置。 ...

    解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题

    这意味着,当用户拖拽结束后松开鼠标按钮(onmouseup),紧接着会触发click事件。由于click事件的执行时间非常短暂,所以很难在click事件发生前进行有效区分用户是进行拖拽还是点击操作。为了解决这一问题,我们可以...

    JQ 鼠标选中内容松开后弹窗

    例如,我们可以为页面中的特定元素绑定`mousedown`和`mouseup`事件,以便在鼠标按下和松开时执行相应的函数。 ```javascript $('#targetElement').on('mousedown', function() { // 鼠标按下时的操作 }); $('...

    WPF获取鼠标在屏幕的位置

    下面是一个简单的示例,展示了如何在按钮的`Click`事件处理程序中捕获鼠标,并在`MouseMove`事件中获取并显示鼠标位置: ```csharp using System.Windows; using System.Windows.Input; public partial class ...

    CSS3实现酷炫动画按钮特效.zip

    } /* 鼠标按下时,按钮放大1.2倍 */ 100% { transform: scale(1); } /* 鼠标松开时,恢复原状 */ } ``` 然后,我们将这个动画应用到按钮元素上,并设置动画的持续时间、延迟和播放次数: ```css .button { ...

    javascript实现判断鼠标的状态.docx

    当用户按下鼠标按钮时,`onmousedown`事件会被触发。在示例代码中,`down()`函数就是在处理这个事件,它会更新页面上的文本,显示“您按下了鼠标”。 ```javascript function down() { form1.text.value = "您按...

    微信小程序按钮点击动画效果的实现

    动画效果如下: GIF看起来可能会有点卡 wxml 确定 wxss .confirm{ width: 325rpx; height: 80rpx; background: #07c160; border-radius: 6rpx; font-size: 30rpx; color: #fff;....bubble:after

    Html事件列表

    - **定义**:当鼠标按钮被按下时触发。 - **用途**:常用于拖拽操作、开始绘制图形等。 - **示例**: ```html (event)"&gt;Drag me! ``` #### onMouseUp HTML: 鼠标按下后,松开时激发的事件 - **定义**:鼠标按钮...

    jQuery中click事件用法实例

    触发click事件的方式有两种:一种是通过用户的鼠标操作,即在鼠标指针位于匹配元素上方时,按下并松开鼠标左键;另一种是通过编程方式,即使用jQuery的click()方法。 ### click()方法 click()方法是jQuery中用于...

    鼠标点击后保留样式同鼠标经过样式页面代码

    这可以通过添加一个`mouseup`事件监听器并在非目标元素上触发时移除`.clicked`类来实现,如下所示: ```javascript document.addEventListener('mouseup', function(event) { if (!event.target.classList....

    vb.net链接sqlserver数据库,加mdi父窗口背景按钮功能

    ' 按下鼠标时的操作 End Sub Protected Overrides Sub OnMouseUp(e As MouseEventArgs) MyBase.OnMouseUp(e) ' 松开鼠标时的操作 End Sub End Class ``` 在实际应用中,你可能还需要考虑按钮的响应区域、透明...

    jQuery鼠标上下拖动div排序代码

    当鼠标按下时,记录初始位置;移动时,更新div的位置;松开鼠标时,结束拖动。 ```javascript $(document).ready(function() { $('.draggable').on('mousedown', function(e) { $(this).addClass('dragging'); ...

    JS中mouseup事件丢失的原因与解决办法

    1. **触发浏览器的drag操作**:当用户按下鼠标并移动,如果浏览器识别到这个行为可能是拖拽操作,它可能会自动处理`mouseup`事件,导致开发者注册的`mouseup`事件处理器未被调用。这可以通过阻止事件的默认行为来...

    破解鼠标右键相关[归纳].pdf

    - **方法一:**当右键被禁用时,可以尝试先选中目标,然后在目标上按住右键,当弹出警告窗口时,不要松开右键,而是移动鼠标到“确定”按钮上,同时按下左键,然后松开左键,接着松开右键,这样通常可以解除限制。...

    JavaScript 事件入门知识

    1. `click`:用户单击鼠标按钮或按下回车键时触发。 2. `dblclick`:用户双击鼠标按钮时触发。 3. `mousedown`:用户按下鼠标按钮还未弹起时触发。 4. `mouseup`:用户释放鼠标按钮时触发。 鼠标事件可以非常灵活地...

    Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)

    onmousedown和onmouseup事件分别在鼠标按钮被按下和释放时触发。这两个事件经常与onclick事件结合使用来完成更复杂的交互,比如拖放操作。 ```javascript (this)" onmouseup="mUp(this)"&gt;鼠标抬起 function mDown...

Global site tag (gtag.js) - Google Analytics