首页 > jquery 如何排除最后一个li事件呢?

jquery 如何排除最后一个li事件呢?

  1. 我希望这个最后li不要点。 像天猫一样的。 怎么用jquery排除最后一个事件啊?

<ul class="nav3">
    <li class="on">
        <a href="javascript:;">商品详情</a>
    </li>
    <li class=""><a href="javascript:;">商品评价 <span><?=count($reviews);?></span></a></li>
    <li class=""><a href="javascript:;">售后保障</a></li>
    <li class="mobile-buy">
        <a>手机购买</a>
        <img src="<?= $rs['goodsQrCode']?>" alt="手机购买">
    </li>
</ul>

/评论点击切换效果/

var $div_li =$("ul.nav3 li");
$div_li.click(function(){
    $(this).addClass("on").siblings().removeClass("on");
    var index = $div_li.index(this);
        $(".product-detail-de > div")
            .eq(index).show()
            .siblings().hide();
});`
  1. 我试过给 mobile-buy 加 pointer-events: none;
    但鼠标悬停在这个二维码下面没有显示大图的二维码。 所以pinter-events:none不是好方法。

本人菜鸟,求大家遇到过的解决分享一下。


我觉得楼上的两个方法都行,看你最后的需求了,

例如你这个手机购买,确定永远在 最后一个。那么使用

var $div_li =$("ul.nav3 li").not(':last');

比较好,这样子不怕 class的变化。

如果手机购买 不一定在最后一个,建议使用

var $div_li =$("ul.nav3 li").not('.mobile-buy');

就是以后不要更改 li的class就好。


$('.nav3').on('click', 'li:not(:last)', function(event){
    // 业务代码
});

或者:

$('.nav3').on('click', 'li', function(event){
    var self = $(this);
    if(self.hasClass('mobile-buy')){
        return false;
    }
    // 业务代码
});

这个简单,直接用not选择就行了

var $div_li =$("ul.nav3 li").not('.mobile-buy');

var $div_li =$("ul.nav3 li:not(:last)");
【热门文章】
【热门文章】