javascript - 使用 jquery 选择单个 li 的能力

标签 javascript jquery

我有一个 li 列表,每个 li 都包含一个从右侧滑出的菜单选项,但我只想一次将点击应用于一个 li。

$('#list li .swipe').click (function(i) {
        var t = $('.options');
        var ul = t.closest('#list');
        var selected = t.hasClass('selected');
        ul.find('li .options').removeClass('selected');

        if(!selected)
                t.addClass('selected');
 });

$('.options a').click(function(e) {
      var id = $(this).closest("li").attr("data-id");

      $(this).closest("li").fadeTo("fast", 0.01).slideUp("fast", function() {
        $(this).remove();
      });
      e.preventDefault(); 
});

实际应用示例 http://jsfiddle.net/zidski/V8Qvy/

最佳答案

如果我正确理解您的要求,您只需要以下内容:

$('#list li .swipe').click (function(i) {
    $('.options').not( $(this).next().toggleClass('selected') )
                 .removeClass('selected');
});

演示:http://jsfiddle.net/V8Qvy/5/

或者如果这看起来很困惑:

$('#list li .swipe').click (function(i) {
    var $current = $(this).next().toggleClass('selected');
    $('.options').not( $current ).removeClass('selected');
});

或者允许对 html 结构进行微小的更改:

$('#list li .swipe').click (function(i) {
    var $current = $(this).closest('li')
                          .find('.options')
                          .toggleClass('selected');
    $('.options').not( $current ).removeClass('selected');
});

演示:http://jsfiddle.net/V8Qvy/6/

也就是说,首先使用 $(this) 选择单击的元素,然后导航到相关的 '.options' div。

关于javascript - 使用 jquery 选择单个 li 的能力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21306229/

相关文章:

javascript - 这个 JavaScript 程序 document.write() 不起作用?

javascript - 异步加载 json 作为对象属性,然后在事件中访问它

javascript - Shopify 特色产品 slider

javascript - 如何从异步调用返回响应?

javascript - jQuery slidetoggle 出现故障

javascript - Prototype.js 错误 - 'undefined' 为空或不是对象

json - jquery 1.9 .ajax() 数据类型默认更改?

javascript - -webkit-溢出-滚动 : touch causes jQuery dynamic changes to not show?

php - 如何消除PHP中的反斜杠

javascript - 为什么是 $(function(){...})?