jquery – $(document).on点击处理程序和标准点击处理程序在iOS上的行为不同

前端之家收集整理的这篇文章主要介绍了jquery – $(document).on点击处理程序和标准点击处理程序在iOS上的行为不同前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我通常使用表单绑定点击处理程序,
$(document).on('click','element',function() { ... });

以避免稍后加载元素的问题.这在桌面浏览器(和Chrome模拟iPhone)上正常工作,但在实际的iPhone上这不起作用(而且我尝试了solutions像“cursor:pointer;”)

我注意到另一个按钮正在使用标准的点击处理程序.我改变了我的新按钮来使用

$('element').click(function() { ... });

并开始工作.为什么在iOS上应用点击处理程序的两种方式不同?

解决方法

我查看了jquery源代码,它们是一样的(两个.click和on(‘click’)使用相同的功能,即.on.

.点击

jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
    "mousedown mouseup mousemove mouSEOver mouSEOut mouseenter mouseleave " +
    "change select submit keydown keypress keyup contextmenu" ).split( " " ),function( i,name ) {

    // Handle event binding
    jQuery.fn[ name ] = function( data,fn ) {
        return arguments.length > 0 ?
            this.on( name,null,data,fn ) :
            this.trigger( name );
    };
} );

如你所见,$.click最终会调用.on(或.trigger,如果没有参数,这不是你的情况)

猜你在找的jQuery相关文章