jquery mobile获取href var值

时间:2012-05-05 19:31:57

标签: javascript html html5 jquery-mobile

在jquery移动文件的文档就绪字段中,我正在等待链接点击。然后执行以下功能

 $(document).ready(function() {

   $("a").click(function ()
   {  
     var t = $(this).attr('href');
     alert(t);
   });
});

在原生webview上,iOS设备在普通浏览器上无效!在浏览器上,alert会正确返回href,但在native上只返回一个#。奇怪......谢谢。

1 个答案:

答案 0 :(得分:0)

在我的iOS6 iPad2上运行我正在构建的HTML5主屏幕应用程序。缺点是iOS或JQuery / JQueryMobile(我目前使用)中似乎存在错误。经过一小时的故障排除后,我发现了这一点:

  1. event.target [在您的示例中为$(this)]在Safari或FullScreen主页应用程序中返回的href有时会返回#,有时会返回正确的href。

  2. 它返回href的时间我期待的很少而且很远但是模式似乎是如果你清理图像底部的标签文本附近(假设你把图像放在图像上)在a标签中。然后有时返回href。

  3. 所以我尝试了很多东西,无论我尝试了什么,在iPad和JQM上,href值都不一致。所以我所做的(至少现在)在a标签中添加了 data-href 标记。例如,我有以下标记(带有一些伪标记)

    <div>
    <a href="./home.hmtl" data-href="./home.html" data-ajax=false data-transistion=none"><img {YOUR IMAGE INFO HERE!} /></a><br/> Label-Text-Under-Image
    </div>
    

    然后在JavaScript中我可以简单地做到: $(this).attr('data-href')就像在你的例子中,虽然我没有用你的例子测试它 或者我做的是以下内容,以便影响我页面中的所有标签(这就是我想要做的)

    $(document).on(
            "click",
                "a",
                function (event) {
                    if (event.target instanceof HTMLImageElement) {                    
                        var aUrl = $(event.target).parent().attr("data-href");
                        if (typeof aUrl != 'undefined') {
                            event.preventDefault();
                            alert(aUrl);
                            window.location = aUrl;
                        }               
                    }                            
                }
            );
    

    我案例中真正的魔力是: 的 $(event.target).parent()ATTR( “数据HREF”); 我得到的数据-href一直在桌面和iPad上正确返回。当然我的最终版本我删除了警报电话,但这就是让我在带有JQM的iPad上工作的原因,并允许我让我的主屏幕应用程序启动Safari。顺便说一下,我正在使用JQM 1.1.0,因为我没有机会获得最新版本...不确定他们是否在新版本中修复了它。