jQuery将事件绑定到具有动态类的元素

Suntin

我有一个触发元素和一个响应元素。

<div class="more"></div>
<div class="info"></div>

我想绑定一个打开/关闭类型的事件。

$('.more').delegate($('.more'), 'click', function(){
    $(this).removeClass('more');
    $(this).addClass('less');
    $(this).text("less...");
    $('.info').addClass("open");
});

$('.less').delegate($('.less'), 'click', function(){
    $(this).addClass('more');
    $(this).removeClass('less');
    $(this).text("more...");
    $('.info').removeClass("open");
});

它不能按预期工作,如果第二个函数嵌套在第一个函数中,则只能打开和关闭一次。如果按上述方式合理地格式化了脚本,它将打开但不会关闭。

有人可以帮我吗?如果脚本可以支持.info,则可能是兄弟姐妹,或者是紧随$(。more / .less)父元素的元素。

我一直在玩.on / .live / .bind,但成功的程度不如上面。

干涉

只需使用JavaScript切换类,然后让CSS magic完成其余工作即可。这是一个演示:http : //jsfiddle.net/pomeh/69sX5/1/

这是代码:

的HTML

<div>
    Some visible content
</div>

<div class="content-fold">
    <div class="more">More...</div>
    <div class="less">Less...</div>
</div>
<div class="info">Some hidden additional content</div>

的CSS

/* Additional content and Less button hidden by default */
.content-fold + .info, .content-fold .less {
    display: none;
}

/* Additional content and Less button shown when class shown is active */
.content-fold.shown + .info, .content-fold.shown .less {
    display: block;
}
/* More button hidden when additional content is shown */
.content-fold.shown .more {
    display: none;
}

/*
You can also move the "div.info" into the "div.content-fold",
and use ".content-fold.shown > .info" instead of ".content-fold.shown + .info"

Browser support is quite good for adjacent selector (see http://www.quirksmode.org/css/selectors/#t11 and https://developer.mozilla.org/en-US/docs/Web/CSS/Adjacent_sibling_selectors#Browser_compatibility)
*/

的JavaScript

$('.content-fold').on('click', function(){
    $(this).toggleClass('shown');
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将事件绑定到动态创建的元素

来自分类Dev

如何将Jquery滚动事件绑定到动态添加的元素?

来自分类Dev

将事件绑定到所有具有数据信息模式集的html元素

来自分类Dev

将独立事件绑定到动态添加的元素

来自分类Dev

如何使用jquery将click事件绑定到没有特定子元素的元素?

来自分类Dev

如何将onclick事件永久绑定到类的元素

来自分类Dev

触发绑定到元素的所有jQuery事件

来自分类Dev

将具有动态参数的函数绑定到Highcharts点

来自分类Dev

将setTimeOut绑定到具有特定元素的某些函数

来自分类Dev

在JQuery中绑定动态元素的click事件

来自分类Dev

动态将点击事件绑定到列表

来自分类Dev

具有类动态添加的jQuery select元素

来自分类Dev

使用JQuery更改具有动态类的元素的CSS

来自分类Dev

将事件绑定到包装器元素

来自分类Dev

将事件绑定到AJAX的子元素

来自分类Dev

jQuery绑定事件到新元素

来自分类Dev

将函数绑定到动态创建的元素

来自分类Dev

具有复杂选择器的动态元素中的事件绑定

来自分类Dev

显示所有绑定到动态生成的元素的事件处理程序?

来自分类Dev

如何从绑定到具有此元素的 id 的元素的类调用函数?

来自分类Dev

jQuery在循环中将事件绑定到动态事件

来自分类Dev

jQuery在循环中将事件绑定到动态事件

来自分类Dev

如何将动态类绑定到Handlebars和Ember中的元素?

来自分类Dev

jQuery .on()函数无法将事件处理程序与PHP动态生成的元素正确绑定

来自分类Dev

jQuery选择将事件绑定到键盘

来自分类Dev

使用jQuery将客户端事件绑定到动态数据列表项

来自分类Dev

使用jquery将click事件绑定到动态生成的div块

来自分类Dev

具有ListView事件的Jquery Mobile动态对话框未绑定

来自分类Dev

将自定义事件绑定到动态创建的元素

Related 相关文章

  1. 1

    将事件绑定到动态创建的元素

  2. 2

    如何将Jquery滚动事件绑定到动态添加的元素?

  3. 3

    将事件绑定到所有具有数据信息模式集的html元素

  4. 4

    将独立事件绑定到动态添加的元素

  5. 5

    如何使用jquery将click事件绑定到没有特定子元素的元素?

  6. 6

    如何将onclick事件永久绑定到类的元素

  7. 7

    触发绑定到元素的所有jQuery事件

  8. 8

    将具有动态参数的函数绑定到Highcharts点

  9. 9

    将setTimeOut绑定到具有特定元素的某些函数

  10. 10

    在JQuery中绑定动态元素的click事件

  11. 11

    动态将点击事件绑定到列表

  12. 12

    具有类动态添加的jQuery select元素

  13. 13

    使用JQuery更改具有动态类的元素的CSS

  14. 14

    将事件绑定到包装器元素

  15. 15

    将事件绑定到AJAX的子元素

  16. 16

    jQuery绑定事件到新元素

  17. 17

    将函数绑定到动态创建的元素

  18. 18

    具有复杂选择器的动态元素中的事件绑定

  19. 19

    显示所有绑定到动态生成的元素的事件处理程序?

  20. 20

    如何从绑定到具有此元素的 id 的元素的类调用函数?

  21. 21

    jQuery在循环中将事件绑定到动态事件

  22. 22

    jQuery在循环中将事件绑定到动态事件

  23. 23

    如何将动态类绑定到Handlebars和Ember中的元素?

  24. 24

    jQuery .on()函数无法将事件处理程序与PHP动态生成的元素正确绑定

  25. 25

    jQuery选择将事件绑定到键盘

  26. 26

    使用jQuery将客户端事件绑定到动态数据列表项

  27. 27

    使用jquery将click事件绑定到动态生成的div块

  28. 28

    具有ListView事件的Jquery Mobile动态对话框未绑定

  29. 29

    将自定义事件绑定到动态创建的元素

热门标签

归档