2013-06-05 30 views
0

我想用JavaScript触发点击链接,但在使用Android库存浏览器时遇到问题。下面的代码工作正常在Chrome(桌面,苹果机)和Safari(iOS版),但不是在Android股票浏览器(三星Galaxy S3):在Android库存浏览器中的链接上使用点击()不起作用

<a href="test" id="a">One</a> 
<a href="test" id="b">Two</a> 

<script> 
document.getElementById('a').addEventListener("click", function (e) { 
    e.preventDefault(); 
    document.getElementById('b').click(); 
}); 

document.getElementById('b').addEventListener("click", function (e) { 
    e.preventDefault(); 
    alert("test"); 
}); 
</script> 

http://jsfiddle.net/xYfdF/7/

当按钮更换链接启动在Android上工作以及:http://jsfiddle.net/xYfdF/8/

任何想法是什么问题或如何实现它否则?

回答

1

你需要转换你的点击事件触摸使用jQuery的事件,如下面

<script type="text/javascript"> 
    jQuery(document).ready(function() 
    { 
     jQuery('#a').bind("touchstart touchend touchmove click",function(event) 
     { 
    event.preventDefault(); 
     jQuery('#b').click(); 
     }); 

     jQuery('#b').bind("touchstart touchend touchmove click",function(event) 
     { 
    event.preventDefault(); 
     alert('Test'); 
     }); 
    }); 
</script> 
+0

谢谢,但它不可能使用jQuery,因为它是对将被嵌入到客户的网站上的脚本。我会研究触摸事件。 – user1767586

+0

看到这个链接,如果对你有用http://stackoverflow.com/questions/16552822/handling-touch-based-events –

2

我找到了解决办法here。它的纯JS,不是jQuery的,但可能有助于解决在Android浏览器的股票缺少click()

<a href="http://stackoverflow.com/" id="link">click here</a> 

<script type="text/javascript"> 
    //same as: document.getElementById("link").click() 
    var clickEvent = document.createEvent('MouseEvent'); 
    clickEvent.initEvent('click', true, true); 
    document.getElementById("link").dispatchEvent(clickEvent); 
</script> 
相关问题