如何在jQuery中影响具有某个类的Li?

时间:2011-05-26 17:15:24

标签: javascript jquery

我使用的是jQuery图库插件,拇指都在无序列表中,主图像位于div的右侧。

该插件将“选定”类添加到当前正在显示其主图像的li。一旦插件移动到下一个图像,所选的类将从li中删除并添加到下一个li。

我想影响当前已应用“已选择”类的li。我不能这样做:

$('li.selected').whateverRules();

因为jQuery是动态应用类的,所以类不存在于文档就绪状态,因此它不起作用。

我也无法使用.live()因为我没有附加事件。那我怎么能用这个呢?

如果动态添加此类,我如何影响当前具有“selected”类的li?

3 个答案:

答案 0 :(得分:1)

更改CSS类时无法绑定到事件。也许您可以修改jquery插件以在添加所选类并将其绑定到该事件时触发事件?

如果您有冒险精神,这里是trigger()的链接。 trigger()

答案 1 :(得分:0)

根据您的通话密集程度,您可以始终使用间隔。它不一定是理想的,但可以做你需要的事情:

var selectedInterval = setInterval(function () {
  $('li.selected').whateverRules();
}, 100); // adjust timing to fit based on function complexity / timing.

我尝试记住将setInterval的返回值存储到变量中,以防以后需要清除它们。它值得一试,虽然不像我想的那么干净。如果我是你,我会看一下当画廊改变它的选择时会引发的一些事件(应该有一个,我想象)。

答案 2 :(得分:0)

我猜您可以将事件附加到图库的控件中:

jQuery(function($){
    $('a.next-image').mouseup(function(){
       $('img.selected') ... // what you want.
    });
});

我觉得这有点难看,但是没有任何消息来源可以用干净的方式解决。