【问题标题】:Can JQTouch.js interfere with links?JQTouch.js 可以干扰链接吗?
【发布时间】: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


    【解决方案1】:

    rel="external" 放在您的链接上,如下所示:

    <li><a href="rc18.html" rel="external"><strong>RC18 setups</strong></a></li>
    

    jQTouch 应该不管它。

    【讨论】:

      猜你喜欢
      • 2011-12-15
      • 1970-01-01
      • 1970-01-01
      • 2015-11-10
      • 1970-01-01
      • 2011-01-27
      • 1970-01-01
      • 2017-12-23
      • 1970-01-01
      相关资源
      最近更新 更多