iOS中jQuery 的delegate 事件监听无效解决办法

前端的小朋友将原来 以下结构的代码

<a href="ssss">
<p>sssss</p>
<p>dddddd</p>
</a>

改成了

<div data-href="ssss">
<p>ssssss</p>
<p>dddddd</p>
</div>

因为涉及到一些异步加载的内容,所以使用如下代码来实现 a 标签的功能

$(document).delegate(‘[data-href]‘, ‘click‘, function () {
            if ($(this).data(‘href‘)) {
                location.href = $(this).data(‘href‘);
            }
        });

在PC浏览器上没有出现任何问题,当由iPhone 6 自带的浏览器打开的时候却直接失效了。

最终在stackoverflow上找到了解决方案,现记录如下:

On iOS there is no event bubbling without a cursor style. So in your CSS you need to add cursor: pointer; to the element.

添加CSS内容

*[data-href]{
cursor: pointer;
}
时间: 2024-10-14 20:11:07

iOS中jQuery 的delegate 事件监听无效解决办法的相关文章

ios 下fixed遮罩背景无法动态监听,解决办法

场景:当要弹出一个fixed的对话框(就是一个弹出框),同时给背景添加一个遮罩层,当操作完后想点击遮罩层关闭整个弹出框条件1:fixed的遮罩层是动态创建的,使用click事件监听不到条件2:在遮罩的下面有链接或是不能点击的元素(或有操作或有链接跳转等) 针对条件1,使用jQuery的on来监听整个文档,当冒泡到指定元素上时,再执行相应操作 针对条件2,使用touchstart/touchend,会产生点透问题 我的经验以及解决办法: 1.使用jQuery的delegate方法监听click事件

js如何实现事件监听和解决兼容性

一.为什么需要事件监听? 我们可不可以为同一对象的同一事件绑定多个事件处理程序呢? 通过行内绑定和动态绑定是不可以的,但是可以通过事件监听来实现. window.onload = function() { // 动态绑定 document.getElementById('btn').onclick = function() { alert('first'); } // 动态绑定 document.getElementById('btn').onclick = function() { alert

Android中ListView的item按钮监听错乱问题解决办法

在开发中经常会遇到这样的问题,做了一个列表,给列表的每一项添加了按钮监听事件,但是在列表的数据很多的时候经常会出现点击后错乱的问题.对于这种问题,我们在程序中可能都有自己的解决办法,但是你也许第一次发现这个问题的时候会跟我之前一样手足无措. 那么现在我们可以分析一下这种问题的根本原因. 首先,我们来看一下一个出错的BaseAdapter. package com.example.listdelectdemo; import java.util.ArrayList; import android.

ORA-12541:无监听错误解决办法

http://jingyan.baidu.com/article/03b2f78c7a0ab75ea237ae33.html 1. 从开始菜单中打开"Oracle Net Configuration Assistance",选择"监听程序配置",如下图所示,点击下一步. 2 选择"重新配置",如下图所示,点击下一步. 3 选择监听程序,如下图所示,选择协议,一般默认就好,点击下一步. 4 选择端口号,如下图所示,点击下一步. 5 选择"

Android实战简易教程-第十五枪(实现ListView中Button点击事件监听)

1.main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" androi

linux 下apche无法监听端口解决办法(Permission denied: make_sock: could not bind to address)

想建立一个测试用的虚拟主机,遇到了这个问题:[[email protected] html]# service httpd startStarting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.termwikidev for ServerName(13)Permission denied: make_sock: could not bin

IOS 开发 证书显示 此证书签发者无效 解决办法

系统证书WWDR在2016年2月14日失效,需要更新WWDR系统证书 下载证书地址https://developer.apple.com/certificationauthority/AppleWWDRCA.cer 下载之后 双击安装 到这  还需要一步 在登陆里面删除过期的证书 在系统里面 删除过期的证书 就可以完美的解决了.所有的证书 都可以使用了

jquery使用css函数设置背景色无效解决办法

外部的css样式为: #imageArea{ width: 200px; height: 300px; background-color: #eee !important; } 通过 以下代码来修改其背景色是无效的 $("#imageArea").css("background-color", "#444444") $("#imageArea").css("background-color","#

JS 中的事件绑定、事件监听、事件委托

事件绑定 要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数.所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称. 在JavaScript中,有三种常用的绑定事件的方法: 在DOM元素中直接绑定: 在JavaScript代码中绑定: 绑定事件监听函数. 在DOM中直接绑定事件 我们可以在DOM元素上绑定onclick.onmouseover.onmouseout.onmousedown.onmouseup.ondblclick.onkeyd