1

在 jquery 移动文件的文档就绪字段上,我正在等待链接单击。然后执行以下函数,

 $(document).ready(function() {

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

在本机 webview iOS 设备上无法正常工作,而在普通浏览器上则可以!在浏览器上,alert 正确返回 href,但在本机上只返回一个 #。奇怪...谢谢。

4

1 回答 1

0

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

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

  2. 它返回我期望的href的时间很少而且相距甚远,但是模式似乎是,如果您在a标签文本附近的图像底部进行清理(假设您将图像中的文本放在a标签中。然后它有时会返回href。

所以我尝试了很多东西,无论我尝试什么,在带有 JQM 的 iPad 上获得的 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("data-href"); 我在哪里得到了在桌面和 iPad 上始终正确返回的 data-href。当然,在我的最终版本中,我删除了警报呼叫,但这就是让我在带有 JQM 的 iPad 上工作的原因,并允许我阻止我的主屏幕应用程序启动 Safari。顺便说一句,我正在使用 JQM 1.1.0,因为我没有机会获得最新的……不确定他们是否在较新的版本中对其进行了修复。

于 2012-10-04T18:30:14.907 回答