【发布时间】:2011-03-31 21:18:57
【问题描述】:
我正在使用 Jonathan Stark 关于使用 HTML、CSS 和 Javascript 构建手机应用程序的书中的数据库代码。在他的 HTML 页面上,他引用了 jquery、jqtouch 和 javascript。
在 HTML 页面上,他创建了指向同一页面的简单链接:
<li class="arrow"><a id="1" href="#date">Yesterday</a></li>
当我将其替换为...时
<li><a href="rc18.html"><strong>RC18 setups</strong></a></li>
...然后页面仍然存在;它不会更改为新的 HTML 页面。
那么,JQTouch.js 可以干扰链接吗?
Jqtouch.js 有 9 个对“href”的引用,但我不知道足够的 Javascript 来理解它们。
这是一个例子:
function showPageByHref(href, options) {
var defaults = {
data: null,
method: 'GET',
animation: null,
callback: null,
$referrer: null
};
var settings = $.extend({}, defaults, options);
if (href != '#')
{
$.ajax({
url: href,
data: settings.data,
type: settings.method,
success: function (data, textStatus) {
var firstPage = insertPages(data, settings.animation);
if (firstPage)
{
if (settings.method == 'GET' && jQTSettings.cacheGetRequests && settings.$referrer)
{
settings.$referrer.attr('href', '#' + firstPage.attr('id'));
}
if (settings.callback) {
settings.callback(true);
}
}
},
error: function (data) {
if (settings.$referrer) settings.$referrer.unselect();
if (settings.callback) {
settings.callback(false);
}
}
});
}
else if ($referrer)
{
$referrer.unselect();
}
}
这里:
// User clicked an internal link, fullscreen mode
if (target == '_webapp') {
window.location = $el.attr('href');
}
// User clicked a back button
else if ($el.is(jQTSettings.backSelector)) {
goBack(hash);
}
// Branch on internal or external href
else if (hash && hash!='#') {
$el.addClass('active');
goTo($(hash).data('referrer', $el), animation);
} else {
$el.addClass('loading active');
showPageByHref($el.attr('href'), {
animation: animation,
callback: function(){
$el.removeClass('loading'); setTimeout($.fn.unselect, 250, $el);
},
$referrer: $el
});
他还引用了 jquery.js,其中的 href 实例对我来说非常神秘。你能通过上面的代码看到是否有什么东西干扰了我去应用程序同一文件夹中的另一个 html 页面。
【问题讨论】:
标签: javascript jquery jqtouch