onclick和href在移动设备上不能一起工作

时间:2014-04-25 07:17:42

标签: javascript jquery html kendo-ui kendo-mobile

我使用两个窗格的kendo ui splitview。这就是我试过的:

<ul>
<li data-icon="net"><a id="clicker" onclick="testfunc()" href="#emptytestpage" data-target="main-pane">Empty </a></li>
</ul>

function testfunc(){


    alert("TEST");
}
</script>

这适用于使用win7或其他台式电脑的谷歌浏览器,但是当我 在Android平板电脑或iPhone上启动它不起作用。在移动设备上,onlick事件不起作用,我不知道为什么。如何用href打开一个新页面并同时启动一个功能?为什么它在桌面而不是移动设备上工作?

有人能帮助我吗?

2 个答案:

答案 0 :(得分:1)

您应该删除内联onclickontouchend个事件。然后,您可以根据平台动态添加clicktouchend的活动:移动版或桌面版。我还制作了fiddle

这些方面的东西:

$(document).ready(function() {
    var clickHandler = function(e) {
            // Do other stuff on desktop;
            alert('desktop');
        },
        touchendHandler = function(e) {
            // Do other stuff on mobile;
            alert('mobile');
        },
        initClickOrTouchEventFor = function(elementSelector) {
            var el = $(elementSelector);

            // We're on mobile.
            if (mobilecheck()) {
                console.log('attaching touchend event on mobile');

                el.on('touchend', touchendHandler);
            }
            // We're on desktop.
            else {
                console.log('attaching click event on desktop');

                el.on('click', clickHandler);
            }
        };

    initClickOrTouchEventFor('#clicker');
});

答案 1 :(得分:0)

我不会在元素属性上放任何东西,但在jquery中设置一个事件监听器。

$("#clicker").on("click",function(evt){

    evt.stopPropagation();evt.preventDefault(); //Prevents the href

    //Do your thing

});

http://jsfiddle.net/uA8b6/(在iPad Mini上测试)