小编Ben*_*Ben的帖子

更改src时对图像加载的jquery回调

我加载了一个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

17
推荐指数
1
解决办法
3万
查看次数

当锚在URL中时,避免页面滚动/跳转

可能重复:
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中,但这看起来有点像黑客.还有其他建议吗?

谢谢

javascript anchor jquery

14
推荐指数
1
解决办法
5万
查看次数

当页面加载时滚动条的内容不足时触发无限滚动

我正在使用伟大的无限滚动插件 - http://www.infinite-scroll.com/infinite-scroll-jquery-plugin/

但是在较大的屏幕分辨率上,没有足够的帖子来显示滚动条,因此无限滚动永远不会被触发.想知道如果这些方法没有大量的初始帖子.

猜测某种if语句来检查浏览器高度等.但是如果它返回true,我如何触发无限滚动.

有任何想法吗

谢谢

jquery infinite-scroll

14
推荐指数
1
解决办法
4246
查看次数

将类添加到多个缓存的jquery元素

使用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)

谢谢

jquery

4
推荐指数
1
解决办法
753
查看次数

如果url包含特定单词,则htaccess重定向

我正在制作的网站上有新闻文章,位于最新的新闻目录中.

/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)

.htaccess mod-rewrite

3
推荐指数
1
解决办法
2万
查看次数

jquery - 是否可以查看是否隐藏了缓存的元素

我在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)

非常感谢

javascript jquery caching

1
推荐指数
1
解决办法
38
查看次数

使用jquery grep过滤对象数组,但条件是变量

我正在尝试过滤掉一系列对象.但是要过滤的对象的属性在别处被定义为变量而不是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)

提前致谢

javascript jquery object

0
推荐指数
1
解决办法
6301
查看次数