javascript - jquery mobile获取href var值

标签 javascript html jquery-mobile

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

 $(document).ready(function() {

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

在原生 webview iOS 设备上不起作用,而在普通浏览器上却可以!在浏览器上,警报正确返回 href,但在 native 上仅返回一个 #。奇怪...谢谢。

最佳答案

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

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

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

所以我尝试了很多方法,但无论我尝试什么,在 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') 就像你的例子一样,尽管我没有用你的例子测试它 或者我所做的如下,以影响我页面中的所有 a 标签(这就是我想做的)

$(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"); 我在那里得到了 data-href,它在桌面和 iPad 上始终正确返回。当然,我的最终版本删除了警报调用,但这就是让我在带有 JQM 的 iPad 上工作的原因,并允许我阻止我的主屏幕应用程序启动 Safari。顺便说一句,我正在使用 JQM 1.1.0,因为我没有机会获得最新版本...不确定他们是否在新版本中修复了它。

关于javascript - jquery mobile获取href var值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10465279/

相关文章:

javascript - 如何使用 Vue.js 将选定的键传递给函数并为其设置值?

三倍元素的 Javascript 矩阵

html - 蓝图 HTML 列问题

javascript - 如何将 Material Design Lite 中的 FAB 按钮与混合移动应用程序中的 jQuery 移动代码集成?

javascript - PhoneGap (Cordova) 应用程序在加载谷歌图表 API 时崩溃

javascript - 如何确定 if::before 应用于元素?

javascript - 为什么我们在JavaScript中多次运行时需要清除动画?

html - Bootstrap 3 即使在使用 respond.js 后也无法在 IE 8 中运行

javascript - 如何使用for循环从父节点中删除子节点(html div)

url - jQuery 手机 : URL query string does not change