我加载了一个json文件后,我正在更改img src,这一切都正常.但我想确保图像完全加载.我可以用它做什么:
.one("load",function(){
alert("image has load yay");
});
Run Code Online (Sandbox Code Playgroud)
但在阅读各种帖子后,如果图像在缓存中,并非所有浏览器都会激活加载.我似乎没有在浏览器中遇到导致此问题的此问题.但我只在mac上测试FF(6.0.2),Chrome(13.0.7)和Safari(5.0.5).现在我确定IE必须有问题,而且它只与PC有关.我正在运行相当近期版本的浏览器,因此在这些版本中已经发生了一些变化,现在已经发生火灾 或者我的另一个想法是我正在运行最新版本的jquery(1.6.3)已经更改了.load?
我希望它与运行最新的jquery有关,但如果没有,这是一个较旧的浏览器问题,那么我需要进行修复.我在这个网站上尝试了几个解决方案,例如: jQuery加载带有完整回调的图像以及 .load api页面上的一些注释:http: //api.jquery.com/load-event/#comment- 30211903
但我似乎无法让他们工作.第一个根本不起作用,第二个似乎与.each()一起失效.
这是我到目前为止的代码似乎工作正常,但不能确定可能是旧的浏览器问题.
$.getJSON(jsonURL, function(json) {
$("a.imgZoom img").attr("src", json[imageID].largeImage).one("load",function(){
alert("the image has loaded");
//do something here
});
$("a.imgZoom").attr("href", json[imageID].largeImage);
})
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
乙
可能重复:
jquery - 加载页面时禁用锚点"跳转"
我正在显示一个div,具体取决于URL中的哈希值,但我想避免页面跳转到具有该特定ID的div的位置.
我只是在直接使用URL中的哈希导航页面时遇到问题,所以例如,如果某人有书标记了页面.
例如,我有url domain.com/page.html#myitem-1
然后会显示ID = myitem-1,但是页面会跳转到我不想要的div的位置.
我试图使用scrollTop(0)强制窗口位置回到顶部,但似乎在锚点跳转发生之前调用它是没有效果的
示例代码:
$(document).ready(function() {
$('.glossary-term').hide();
$(window.location.hash).show();
$(window).scrollTop(0);
});
Run Code Online (Sandbox Code Playgroud)
我能够让这个scrollTop工作的唯一方法是将它放在持续时间为1的setTimeOut中,但这看起来有点像黑客.还有其他建议吗?
谢谢
乙
我正在使用伟大的无限滚动插件 - http://www.infinite-scroll.com/infinite-scroll-jquery-plugin/
但是在较大的屏幕分辨率上,没有足够的帖子来显示滚动条,因此无限滚动永远不会被触发.想知道如果这些方法没有大量的初始帖子.
猜测某种if语句来检查浏览器高度等.但是如果它返回true,我如何触发无限滚动.
有任何想法吗
谢谢
本
使用jQuery可以同时向多个缓存元素添加类.我知道我可以做以下事情:
cachedElement1 = $('#div1');
cachedElement2 = $('#div2');
cachedElement1.addClass('someclass');
cachedElement2.addClass('someclass');
Run Code Online (Sandbox Code Playgroud)
但这样做有一个简短的方法.所以类似下面的内容实际上并不起作用.
$(cachedElement1,cachedElement2).addClass('someclass');
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在制作的网站上有新闻文章,位于最新的新闻目录中.
/news/latestnews/some-article-2012.html
Run Code Online (Sandbox Code Playgroud)
现在根据新闻文章的年份将它们移到不同的目录中.所以2013年现在在:
/news/2013/some-article-2013.html
Run Code Online (Sandbox Code Playgroud)
和2012年在:
/news/2012/some-article-2012.html
Run Code Online (Sandbox Code Playgroud)
我可以使用以下命令轻松更新其中一个目录:
RewriteRule ^news/latestnews/(.*)$ /news/2011/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
但我需要重定向到特定的年份目录.所有新闻文章都包含名称的年份.所以有些文章 - 2012年或某篇文章 - 2013年.
任何有关调整我的规则以帮助检查年份的帮助.
谢谢
=========编辑=======
我已设法添加一些RewriteCond重定向到正确的目录,但无法附加所请求的文件名.
所以使用这个规则
RewriteCond %{REQUEST_URI} ^/news/latestnews/(.*)$
RewriteCond %$1 ^(.*)2012(.*)$
RewriteRule ^(.*)$ /news/2012 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
这个网址
/news/latestnews/some-article-2012.html
Run Code Online (Sandbox Code Playgroud)
被重定向到
/news/2012
Run Code Online (Sandbox Code Playgroud)
但网址中缺少"some-article-2012.html".
我已经尝试在rewriterule的末尾添加1美元,所以你有:
RewriteRule ^(.*)$ /news/2012$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
但是完整的旧网址会被追加,所以你有:
/news/2012/news/latestnews/some-article-2012.html
Run Code Online (Sandbox Code Playgroud) 我在jquery中缓存了一个DOM元素,并想知道我是如何看到它是否隐藏.
我通过普通的选择器做的没问题.使用普通选择器我会做这样的if语句:
if('.someClass:hidden') {
console.log('hidden')
}
else {
console.log('not hidden');
}
Run Code Online (Sandbox Code Playgroud)
但是,而不是.someClass我已经缓存了元素.像这样,细节是缓存元素:
$this = $(this);
details = $this.find(".details");
Run Code Online (Sandbox Code Playgroud)
非常感谢
乙
我正在尝试过滤掉一系列对象.但是要过滤的对象的属性在别处被定义为变量而不是100%如何构造点符号语法.
所以我有一个像这样的数组对象
var listings = [
{"id" : "1", "name":"a name", "surname" : "a surname"},
{"id" : "2", "name":"b name", "surname" : "b surname"},
{"id" : "3", "name":"c name", "surname" : "c surname"}
]
Run Code Online (Sandbox Code Playgroud)
我有一个变量指定要过滤的对象的属性.此变量并不总是设置为name.在上面的示例中,它可以是id,name或surname.
var filter = 'id'
Run Code Online (Sandbox Code Playgroud)
要查找的过滤器val的var
var filterVal = '2'
Run Code Online (Sandbox Code Playgroud)
然后我有这个grep电话.
listings = $.grep(listings, function (obj, index) {
return obj.id === filterVal;
});
Run Code Online (Sandbox Code Playgroud)
但不是obj.id硬编码我想要的东西像:
obj."value of filter variable" === filterVal
Run Code Online (Sandbox Code Playgroud)
提前致谢
本