我已经为弹出窗口实现了jQuery和jQuery mobile,但经过一些测试后我注意到jQuery正在接管所有的锚点。如果我注释掉jQuery脚本的链接,一个和我的锚点按预期工作,如果我取消注释,那些锚点将被重新接管并且不允许href正确地通过。任何人都知道如何解决这个问题,至少可以说是非常恼火。这是样本......
<div>
<ul>
<li><a href="http://www.somesite.com">Somesite</a></li>
</ul>
</div>
<div>
<a href="#popupVideo" data-rel="popup" data-position-to="window" data-inline="true">Click</a>
<div data-role="popup" id="popupVideo" data-overlay-theme="a" data-theme="d" data-tolerance="15,15" class="ui-content">
<iframe width="560" height="315" src="http://www.somevideo.com" frameborder="0" allowfullscreen></iframe>
</div>
</div>
$( document ).on( "pageinit", function() {
winW = window.innerWidth;
winH = window.innerHeight;
$( "#popupVideo iframe" )
.attr( "width", 0 )
.attr( "height", 0 );
$( "#popupVideo" ).on({
popupbeforeposition: function() {
var size = scale( winW, winH, 15, 1 ),
w = size.width,
h = size.height;
$( "#popupVideo iframe" )
.attr( "width", w )
.attr( "height", h );
},
popupafterclose: function() {
$( "#popupVideo iframe" )
.attr( "width", 0 )
.attr( "height", 0 );
}
});
});
然后我有jQuery示例附带的正确代码,该代码中没有任何内容是特定于锚并且是特定于id的。另外,如果我删除调整弹出窗口的脚本,它仍然不起作用,我唯一链接的是jQuery文件。我正在使用最新的jQuery,如果这有助于1.9.1和移动1.3.0我使用的是1.2.0,但想到可能更新的将解决问题,但无济于事。提前谢谢。
答案 0 :(得分:1)
我很确定你指的是jQuery mobile的默认行为。 jQuery mobile中锚标记的默认行为是使用ajax请求:
jQuery Mobile旨在使用简单的页面链接约定。 基本上,您可以像往常一样链接页面和资产,以及 jQuery Mobile将自动处理单页中的页面请求 模型,尽可能使用Ajax。当Ajax不可能时(例如 非同域url,或者如果使用某些属性指定的话 链接),而是使用普通的http请求。
此模型的目标是允许开发人员使用创建网站 最佳实践 - 普通链接“无法正常工作” 特殊配置 - 同时创造丰富的原生式体验 使用标准HTTP请求无法实现。
http://jquerymobile.com/demos/1.2.0/docs/pages/page-links.html
此外:
指向其他域或具有rel =“external”的链接, data-ajax =“false”或目标属性不会被Ajax加载。 相反,这些链接将导致整页刷新而没有动画 过渡。两个属性(rel =“external”和data-ajax =“false”) 具有相同的效果,但具有不同的语义含义:rel =“external” 应该在链接到另一个站点或域时使用 data-ajax =“false”对于简单地选择你的页面非常有用 通过Ajax加载域。由于安全限制, 框架总是选择从Ajax中链接到外部域 行为。
在1.1版本中,我们添加了对a使用data-ajax =“false”的支持 父容器,允许您排除大量链接 来自Ajax导航系统。这避免了添加它的需要 属性到容器中的每个链接。要激活它 功能,$ .mobile.ignoreContentEnabled必须设置为true。 请在使用和设置之前检查配置默认值 选项。
注意:构建一个jQuery Mobile应用程序所在的Ajax 导航系统全局禁用或经常禁用 个别链接,我们建议禁用$ .mobile.pushStateEnabled 全局配置选项,以避免不一致的导航行为 在某些浏览器中。