jQuery和“哈希”的问题?

时间:2012-02-24 19:28:59

标签: javascript jquery jqtouch

我使用jQTouch时遇到了一些问题。我有这个链接

<a href="#site_map" class="swap">Map</a>

和这个jQTouch初始化:

var jQT = new $.jQTouch({
            icon: 'jqtouch.png',
            icon4: 'jqtouch4.png',
            addGlossToIcon: false,
            startupScreen: 'jqt_startup.png',
            preloadImages: []
        });

Sooo ...控制台(谷歌浏览器)说:

Uncaught TypeError: Cannot read property 'hash' of undefined

Line 331, jQTouch.js...

有人有什么想法吗?

一些附加信息:

Firefox控制台:

hash is undefined 
hash = hash.replace(/^#/, ''),
jqtouch.js (Zeile 431)   
(432 out of range 4)
jquery.js (Zeile 432)

最后,Safari控制台:

TypeError: 'undefined' is not an object (evaluating 'hash.replace')

2 个答案:

答案 0 :(得分:2)

确保你使用jQuery的jQTouch,你加载了基本JQT和JQT jQuery桥接文件(奇怪 - 插件最初是用jQuery开始的,现在需要一个单独的加载脚本来处理它而不是Zepto.js)

此外 - 页面加载时是否发生此错误?这是您正在使用JQTouch的静态HTML页面,还是使用PHP,.NET等动态创建的?

答案 1 :(得分:0)

那是因为hash在window.location上。

你可以这样做:

var hash = location.hash.replace(/^#/, '')