我有这个问题(我使用的是jQuery,但我并不局限于此):
我正在使用Anchor导航(#id)和Ajax请求的组合.为了使页面移动到位(使用锚导航)或获取信息(使用Ajax),我使用onhashchange事件.
编辑:我有一个小错字.我忘了检查mouseDown标志是否为true并且是否触发了hashchange事件,所以我添加了if语句.
使用jQuery它看起来像这样:(当然这个代码包含在一个函数中并在DOM加载时初始化但是对于这个问题并不重要)
$(window).bind('hashchange', function(e) { }
Run Code Online (Sandbox Code Playgroud)
为了确保只有支持onhashchange的浏览器读取代码,我将其封装为:
if ('onhashchange' in window) {
$(window).bind('hashchange', function(e) { }
}
Run Code Online (Sandbox Code Playgroud)
我的网络应用程序是这样制作的,我只想在浏览器中点击后退/前进按钮时触发onhashchange事件.要做到这一点,我喜欢这样:
if ('onhashchange' in window) {
$(window).bind('mousedown hashchange', function(e) { }
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我在视口中单击,我将触发mousedown事件.如果mousedown事件被触发,我知道我没有单击浏览器后退/前进按钮,我可以使用这样的标志停止onhashchange事件:
var mouseDown = false;
if ('onhashchange' in window) {
$(window).bind('mousedown hashchange', function(e) {
if (e.type === 'mousedown') {
mouseDown = true;
}
if (mouseDown && e.type === 'hashchange') {
// if the mousedown event was triggered and when the haschange event triggers,
// we need to stop …Run Code Online (Sandbox Code Playgroud) 我现在已经厌倦了这个问题.我被推迟了很多次试图让这一切顺利.我觉得这是我解决问题的最后一次尝试.开始:
我安装罗盘
sudo gem update --system
sudo gem install compass
Run Code Online (Sandbox Code Playgroud)
我创建了我的测试项目(名为test)
compass create test
Run Code Online (Sandbox Code Playgroud)
这就产生了这个
directory test/
directory test/sass/
directory test/stylesheets/
create test/config.rb
create test/sass/screen.scss
create test/sass/print.scss
create test/sass/ie.scss
Run Code Online (Sandbox Code Playgroud)
我尝试编译项目
compass compile [path/to/test]
Run Code Online (Sandbox Code Playgroud)
我得到的只是这个错误消息:"无需编译.如果您正在尝试启动一个新项目,那么您已经离开了目录参数."
我试着谷歌问题,但我找不到任何帮助我.这里的任何人都知道发生了什么事吗?我错过了重要的事情吗?
我正在运行OSX 10.6.8