JQuery不透明度过滤器

时间:2013-03-22 06:19:48

标签: jquery opacity

我有一个简单的脚本,如果它们与选择不匹配,基本上将无序列表项的不透明度项调整为0.1。

$('ul.filter li a').click(function() {
    var getvalue = $(this).attr('rel');
    $('.portfolioThumbs li.all').animate({opacity:0.1});
    $('.portfolioThumbs li.'+getvalue).animate({opacity:1});
    return false;
});

如何添加或修改此项,以便那些不能点击的不透明度项为0.1?

2 个答案:

答案 0 :(得分:2)

使用pointer-events css属性。

$('ul.filter li a').click(function() {
    var getvalue = $(this).attr('rel');
    $('.portfolioThumbs li.all').animate({opacity:0.1}).css('pointer-events', 'none');
    $('.portfolioThumbs li.'+getvalue).animate({opacity:1}).css('pointer-events', 'auto');;
    return false;
});

注意:HTML元素的pointer-events仅支持Chrome 2.0 +,Firefox 3.6+和Safari 4.0+,IE和Opera不支持。

答案 1 :(得分:0)

也许只需在设置不透明度时添加一个类

$('.portfolioThumbs li.all').animate({opacity:0.1}).addClass('addedClass');

然后

$('.portfolioThumbs li.addedClass').click(function(e) {
    e.preventDefault();
});

或者你可以简单地阻止点击而不添加额外的类(因为他们有一个)

$('.portfolioThumbs li.all').click(function(e) {
    e.preventDefault();
});

BTW为什么你要阻止点击li项目..这些li中是否有一个锚标记,你要阻止点击?