当用户触摸任何不是't链接/锚等
How to perform some action when a user touches anywhere that isn't a link/anchor etc?
我在iOS和UIWebView中使用html/javascript。当用户触摸页面上任何不是链接的地方时,我想调用objective-c方法。
目前我有
...
<BODY ontouchend="bodyTouch();">
<HEAD>
<script language="javascript" type="text/javascript">
function bodyTouch() {
invokeObjectiveC();
}
}
</script>
...
<DIV id=buttons>
<A id=navigator href="CustomScheme:SomeAction"></A>
....
我该如何设置,以便只有当用户触摸屏幕上不是链接/按钮/锚等的任何地方时,bodyTouch()才会被调用。
===更新===
谢谢大家的回答。不幸的是,我无法让它们中的任何一个工作(现在,当我尝试其中任何一个时,我的InvokeObjectiveC()根本不会被调用)。我是一名iOS开发人员,不懂html/javascript。我会做一些研究,因为我目前用有限的知识不理解任何答案,然后在理解他们在做什么后尝试,并试图找出为什么不起作用。我会在适当的时候把其中一个答案标记为已接受。干杯
document.body.addEventListener('click', function(event){
bodyClick();
}, false);
document.querySelector('a').addEventListener('click', function(event){
event.stopPropagation();
}, false);
在Mozilla开发者网络上了解有关stopPropagation
的更多信息
JSFiddle
试试这个,你应该可以把它放在文档的任何地方
<script>
document.addEventListener('DOMContentLoaded', function () {
document.documentElement.addEventListener('click', function (e) {
/* CHECK IF THE TARGET IS IN YOUR BANLIST */
if (['A', 'BUTTON'].indexOf(e.target.tagName) === -1) {
/* I WOULD CALL THESE FOR GOOD MEASURE */
e.preventDefault();
e.stopPropagation();
/* THIS IS YOUR FUNCTION */
invokeObjectiveC();
}
}, true);
}, false);
</script>
这对看起来像输入[type=button]的按钮不起作用,如果你需要的话,也让我知道
使用jQuery委托和选择器,但是,如果该事件的原始元素触发使用stopPropagation
类似于Roderick的响应,但更适合跨浏览器
document.getElementsByTagName('html')[0].addEventListener('click', function (ev) {
var el, elN;
ev = ev || window.event;
el = ev.target || ev.srcElement;
elN = el.nodeName.toLowerCase();
if (elN == 'a' || elN == 'input') return false;
invokeObjectiveC();
}, true);
相关文章:
- 锚链接无法使用.slideUp jquery函数
- Javascript获取所有锚链接的索引
- jQuery Mobile到其他页面的锚链接不起作用
- 响应式图片库,每个图片都可以通过锚链接访问
- 隐藏的锚链接下降在下一行一旦显示
- 无法在启用视差的页面中单击锚链接
- 打开'选择文件'窗口单击锚链接(跳过单击'选择文件'按钮)
- iframe resizer内部的锚点链接不'不起作用
- 什么'这是使用jQuery将一些文本锚定到外部链接的最简单方法
- 使用animate将标签链接锚定到不同页面上的ID
- 使用 Yahoo API 拖放带有链接锚点的容器
- 为什么在更改文本时删除 li 元素中的链接(锚元素)
- 当最后一项在javascript中的旋转木马中可见时,如何禁用链接/按钮等
- 当用户触摸任何不是't链接/锚等
- 有什么方法可以绑定'任何'通过身份验证脚本重定向(链接/刷新等)
- 我如何传递链接锚文本
- 用Jquery替换散列链接锚的行为
- 抽屉菜单与复选框hack,与链接锚在同一页
- 如何触发HTML链接(锚元素)的默认动作/事件
- 删除“;可点击性”;来自链接(锚定标记)