编写一些拖放代码,我想在我的mouseup处理程序中取消单击事件.我认为防止默认应该做的伎俩,但点击事件仍然被触发.
有没有办法做到这一点?
这不起作用:
<div id="test">test</div>
<script>
$("#test").mouseup (function (e) {
var a = 1;
e.preventDefault();
});
$("#test").click (function (e) {
var a = 2;
});
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个感觉像 iPhone/Android 设备上的本机应用程序的网站。我已经设法设置它以便 html 和 body 不滚动,并且我有一个单一的内容<div>,它是可滚动的部分。
但是,当设置
overflow-x:hidden
Run Code Online (Sandbox Code Playgroud)
为了只允许垂直滚动,我仍然在 iPhone(Chrome 和 Safari)上获得了水平滚动行为。可以看到滚动条属于 .content 元素。环境
overflow:hidden
Run Code Online (Sandbox Code Playgroud)
按预期工作并禁用所有滚动。
对我来说,它看起来像是 Chrome 上的一个错误。
编码:
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes" />
<style>
html, body {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
overflow: hidden;
}
.scroll {
height: 100%;
overflow-y: auto;
overflow-x: hidden;
-webkit-overflow-scrolling: touch;
}
.content {
height: 2000px;
margin: 10px;
overflow-x: hidden;
background: linear-gradient(to bottom, #f00 0%, #00f 50%);
}
</style>
</head>
<body> …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个包含ngsSubmit的表单.按Enter并单击提交按钮按预期工作(调用我为ng-submit提供的方法,就是这样).
但是,在某些情况下,我还希望在实际提交之前进行一些预处理,因此我尝试使用JQuery的submit()以编程方式触发提交.
这会导致ng-submit处理程序触发,并且还会发送通常刷新整个页面的表单.
任何想法如何绕过这个或为什么会发生???
这里的示例("点击我"显示不良行为) http://jsfiddle.net/Yf5tf/
<form ng-app="myApp" ng-submit="submitMe()" ng-controller="myCtrl">
<input type="text" ng-model="value"></input>
<input type="submit" value="Go!"></input>
<div ng-click="progSubmit()">click me</div>
</form>
angular.module('myApp', [])
.controller('myCtrl', function($scope, $element, $timeout) {
$scope.submitMe = function() { alert ("hi"); };
$scope.progSubmit = function() {
$timeout(function() {
var inputElem = $element.find("input");
angular.element(inputElem[0].form).submit();
}, 0);
};
});
Run Code Online (Sandbox Code Playgroud)
谢谢你,亚伦