【问题标题】:Want to show each element on click想要在点击时显示每个元素
【发布时间】:2015-01-08 18:50:01
【问题描述】:

我有菜单选项。当我点击菜单选项时,菜单下会打开一个部分,我的 html 是

<table class="main-products">
    <tr>
        <td><?php echo $item_name; ?></td>
        <td>£ <?php echo $item_price; ?></td>
        <td><a class="add-cart" href="javascript:void(0);" onclick="open_drop()"></a></td>
    </tr>
</table>
<div class="item-menu">
    <form class="item-type">
        <input type="radio" name="radio" value="Inferno Hot" />Inferno Hot<br />
        <input type="radio" name="radio" value="Medium" />Medium<br />
        <input type="radio" name="radio" value="Jerk" />Jerk<br />
        <input type="radio" name="radio" value="Lemon & Herb" />Lemon & Herb<br />
        <input type="radio" name="radio" value="Mango & Lime" />Mango & Lime<br />
    </form>
    <div class="fright">
        <a href="javascript:void(0);" class="add-to-cart" onclick="add_to_cart('<?php echo $item_name; ?>','<?php echo $item_price ?>');">Add To cart</a>
    </div>
</div>

还有我的javascript:

function open_drop(){
    var $this = $('.item-menu');
    $this.each('click', function(){
        if ( $('.item-manu').is(':visible') ) {
            $this.hide();
        }else{
            $this.show();
        }('hi');
    });
}

我想在每个元素上显示每个菜单,但我没有这样做

【问题讨论】:

  • 我假设这会产生错误等,当你说你“失败”时,代码现在做什么?您在开发工具中遇到什么错误?我从来没有见过这样添加的“点击”事件,我认为 js 代码无效
  • 事件处理程序附加到 html 参见 onclick=""
  • 你写过 .item-manu 和 .item-menu 一次,错字,还是必须这样?
  • 如果你有一个内联点击,它调用一个函数,然后尝试绑定更多事件,每次点击菜单时你都会重新绑定。尽量避免使用内联 javascript

标签: javascript jquery html


【解决方案1】:

要将点击事件添加到您的项目列表中,您需要像这样循环它

var items = $('.item-menu input');

items.each(function (index, item) {

    $(item).on('click', function () {
        // do something
    });

});

编辑:正如所指出的,这显然太早了。 下面的更好,除非你想使用索引并基于它做一些事情,否则你不需要循环(但即使那样你也可以只使用 index())

$('.item-menu input').on('click', function () {
    // do something
});

【讨论】:

  • 如果你所做的只是绑定一个点击事件,你并不真的需要每个
  • @atmd 现在是这样但不工作。 link
  • 如果问题发生了变化,您能否更新您的代码?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-23
  • 1970-01-01
  • 2013-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-20
相关资源
最近更新 更多