You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何限制jQuery-Seat-Charts仅允许选择单个座位?

实现jQuery-Seat-Charts单选座位功能

要实现仅能选中单个座位的限制,核心逻辑是在选中新座位前自动取消所有已选中的座位,利用库本身的点击事件逻辑完成状态重置,无需额外隐藏或禁用元素。

修改你的click事件处理函数即可,具体改动如下:

click: function () {
    if (this.status() == 'available') {
        // 先取消所有已选中的座位
        sc.find('selected').each(function() {
            this.click();
        });

        // 以下为原有的选中座位逻辑,保持不变
        $('<li class="circulos">'+this.settings.label+',</li>')
            .attr('id', 'cart-item-'+this.settings.id)
            .data('seatId', this.settings.id)
            .appendTo($cart);
        
        $counter.text(sc.find('selected').length+1);
        $total.text(recalculateTotal(sc)+this.data().price);
        
        return 'selected';
    } else if (this.status() == 'selected') {
        // 原有的取消选中逻辑,保持不变
        $counter.text(sc.find('selected').length-1);
        $total.text(recalculateTotal(sc)-this.data().price);
    
        $('#cart-item-'+this.settings.id).remove();
    
        return 'available';
    } else if (this.status() == 'unavailable') {
        return 'unavailable';
    } else {
        return this.style();
    }
}

改动说明

  • 在选中新座位的分支中,新增sc.find('selected').each(function() { this.click(); }):遍历所有已选中的座位并触发点击事件,自动调用原有的取消选中逻辑(移除购物车项、更新总价)。
  • 原有选中和取消选中的逻辑完全保留,无需额外修改,确保功能连贯性。

这样修改后,每次点击新的可用座位时,系统会先清空之前的选中状态,再选中当前座位,实现严格的单选限制。

内容的提问来源于stack exchange,提问作者Jeremias Rosas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 19:07:36