1

我怎么能说如果它是一个触摸设备不要悬停并直接点击?
这是播放的示例:http: //jsfiddle.net/2Sax4/4/

关键是怎么说得到a href。像这样的东西:

window.location= 'http://' + this a; 

jQuery:

$(function(){

    // not touch:      
    $(".menu li").hover(function() {
        $(this).animate({ "background-color":red }, 1000);
    },function() {
        $(this).animate({ "background-color":blue }, 1000);
    });

    // touch:
    var supportsTouch = 'ontouchstart' in window || 'onmsgesturechange' in window;
    if(supportsTouch) {
        $(this).on('touchstart', function(){
                    //I tried something like this
            window.location= 'http://' + this a;  
        }); 

    }   
})

HTML:

<ul class="menu">
    <li id="first"><a href="first.html">first</a></li>
    <li id="second"><a href="second.html">second</a></li>
</ul>
4

4 回答 4

3
window.location.href = location.protocol + '//' + location.host + '/' + $( 'a', this).prop('href');

如果您不知道协议或主机(主机名 + 端口)。

于 2013-04-29T08:16:20.503 回答
2

尝试这个

window.location= $("a", this).attr("href");

当然,如果this引用li我认为从您的代码中可以得到的 ,这将起作用。

于 2013-04-29T08:14:33.447 回答
1

在这种情况下 $(this) 是什么?一般来说,你可以这样做:

window.location.href = $(this).attr('href');假设 $(this) 是<a>.

于 2013-04-29T08:13:55.353 回答
0

有两个步骤:

  1. 获取对a元素的引用。
  2. 将正确的 URL 分配给window.location.href.

要获得对链接的引用,您只需在元素的后代中找到它:

var link = $(this).find('a'); // or $(this).children('a');

现在,虽然hrefHTML 属性仅包含部分 URL(文件名),但相应的DOM 属性包含基于页面当前 URL 的完整URL(方案、主机、路径等)。
所以我们可以把它分配给window.location/href

window.location.href = link.prop('href');
于 2013-04-29T09:11:31.343 回答