[英]Angular - Implementing event handler on button mouseup when mouse is not over the button
我想實現一鍵通按鈕,當我按下鼠標時啟用語音,而當我釋放鼠標時禁用語音。 這是我現在擁有的代碼:
<button ng-mousedown="enablePushToTalk()" ng-mouseup="disablePushToTalk()" class="btn"> PushToTalk </button>
問題場景是這樣的:
這是一個gif:
如何確保每次調用“ enablePushToTalk”時都調用“ disablePushToTalk”?
如何將ng-mouseup
事件監聽器添加到父元素?
使用上述想法為您的問題創建了一個jsBin。
解決方案1:
// html
<body style='height:500px;border:1px solid black;' ng-controller="MyCtrl" ng-mouseup='disable()'>
<div >
<button ng-mousedown="enablePushToTalk()" ng-mouseup="disablePushToTalk()" class="btn"> PushToTalk </button>
</div>
</body>
// js
function MyCtrl($scope) {
$scope.name = 'Superhero';
var isMouseUp = false;
$scope.enablePushToTalk = function(){console.log('mouseup');isMouseUp=true;}
$scope.disablePushToTalk = function(){console.log('mousedown');isMouseUp=false;}
$scope.disable = function(){if(!isMouseUp) return;console.log('mousedown from body');isMouseUp=false;}
}
jsBin鏈接: http ://jsbin.com/nedijudaga/edit?html、js,控制台,輸出
解決方案2:
僅將ng-mouseup
事件添加到父元素而不添加on button
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.