2017-02-24 59 views
0

还有就是众所周知的问题与IOS,它不承认click事件,除非该元素的CSS cursor: pointer;如何获取所有具有jQuery附加的“click”事件的元素?

不过,我不希望所有点击元素,以在桌面上的这种行为,所以我在寻找一种方式来添加此只有在检测到IOS时才会发送css。

​​3210

不知道如果这甚至是可能的,但我真的想找到一个不用担心IOS点击的好方法。

UPDATE: 的想法是这样的:

$(document).ready(function(){ 
    $('body').on('click', 'div.hasClick', function(){ 
     // do something 
    }); 
    /* much more similar click event attached to many elements*/ 
    if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)){ 
     var elements = /* here I need help to get all elements that have click event 
     attached, taking into account that some of them could be added dynamically 
*/ 
     elements.css('cursor', 'pointer'); 
    } 
}); 
+0

为什么不只是加个班使用媒体查询jQuery和使用CSS? – azs06

回答

0

你的意思呢?

$('*[onclick]').css("cursor","pointer");
div { 
 
    margin: 10px; 
 
    background: blue; 
 
    width: 20px; 
 
    height: 10px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<div onclick="javascript:void(0)"></div> 
 
<div onclick="javascript:void(0)"></div> 
 
<div id="onclk"></div>

+0

不,我添加了一些编辑问题。点击事件添加与jquery不作为属性 –

0

搜索东西有点击事件整个DOM将是昂贵的。假设你知道你要检查click事件的存在的子集,你可以做这样的事情...

let elements = Array.from(document.querySelectorAll("button")); 
let elementsWithEvent = []; 

elementsWithEvent = elements.filter((element)=>{ 
    return $(element).data('events').click ? true : false; 
}); 
相关问题