javascript - 单击一个菜单项时显示隐藏字段 - 高级自定义字段重复器

标签 javascript jquery repeater advanced-custom-fields

我有一个免责声明 div,我想在单击某个菜单项时显示它。我的 Jquery 使用以下脚本正确显示了隐藏的 div: $(function(){ var $allItems = $(".food-container > div"); $(document.body).on("click", "a.menu-item", function () { var id = this.id, itemId = ".food-container > #item-" + id; $allItems.not($(itemId).fadeToggle()).hide(); }); }); 我正在使用高级自定义字段中继器字段,因此我需要将该字段隐藏在中继器循环之外。我的菜单 ID 是“4”。因此,我只需要将“burger-disclaimer”的免责声明 div 连接到 #4 点击事件。

这是菜单:https://jsfiddle.net/42gqu9r9/

最佳答案

这应该会让你走上正确的道路。我正在获取点击事件的 ID(evt 变量),以查看选择的内容。

HTML:

<a id="1" href="javascript:void(0)" class="menu-item">Appetizers<i class="fa fa-caret-right"></i></a>
<a id="2" href="javascript:void(0)" class="menu-item">Tex-Mex<i class="fa fa-caret-right"></i></a>
<a id="3" href="javascript:void(0)" class="menu-item">Salads<i class="fa fa-caret-right"></i></a>
<a id="4" href="javascript:void(0)" class="menu-item">Burgers<i class="fa fa-caret-right"></i></a>
<div class="food-container">
    <div id="item-1" style="display: none;">
        <div class="food">
            <h3>Mac N Cheese Bites</h3> Breaded, then fried macaroni, stuffed with cheese</div>
        <div class="price"> $8 </div>
    </div>
    <div id="item-2" style="display: none;">
        <div class="food">
            <h3>Salads</h3> Salads
        </div>
        <div class="price"> $8 </div>
    </div>
    <div id="item-3" style="display: none;">
        <div class="food">
            <h3>Tex-Mex</h3> Tex-Mex
        </div>
        <div class="price"> $8 </div>
    </div>
    <div id="item-4" style="display: none;">
        <div class="food">
            <h3>Burgers</h3> Burger
        </div>
        <div class="price"> $8 </div>
    </div>
</div>
<div class="burger-disclaimer">
    *All sandwiches and burgers are served with fries or potato chips. Side salad and onion rings available as side, add $2 upcharge
</div>

JS:

$(function() {
    var $allItems = $(".food-container > div");
    $(document.body).on("click", "a.menu-item", function(evt) {
        var id = this.id,
            itemId = ".food-container > #item-" + id;
        $allItems.not($(itemId).fadeToggle()).hide();
        if (evt.target.id == 4) {
            $('.burger-disclaimer').toggle();
        } else {
            $('.burger-disclaimer').hide();
        }
    });
});

更新后的 JS Fiddle:https://jsfiddle.net/6y0ymao8/

关于javascript - 单击一个菜单项时显示隐藏字段 - 高级自定义字段重复器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35416536/

相关文章:

c# - 中继器的 ItemDataBound 不会影响某些值

C#/ASP.NET - HTMLselect 中不能有中继器

javascript - 使用 lodash 过滤属性

javascript 使用模糊验证输入无法获得自动完成结果

javascript - jQuery 颜色动画 - 不会淡回背景颜色

javascript - 从 POST 返回数据

asp.net - 为什么应用于 Repeater Control 的 <DIV> CSS 放在 UpdatePanel 中时会失真?

javascript - 使用 bootstrap 设置全屏 leaflet.js map

javascript - 带有 Angular ng-repeat 的 Numareting 表

php - 在数据库中逐一获取值之间等待