jQuery Mobile vclick事件仅触发一次

m

我正在尝试做一个简单的按钮转换,在单击vclick事件时更改它的图标,但真的不明白为什么vclick事件仅触发一次,有人可以对此有所了解吗?如果我使用“单击”或将事件直接附加到按钮元素,我将得到相同的结果。

JSFiddle位于:http : //jsfiddle.net/w7quoyn4/

$('#btnAddToCart').on('vclick', function () {

    console.log("btnAddToCart vclick event fired");

    if ($(this).attr('data-icon', "plus")) {
        $(this).attr('data-icon', "minus").button().button("refresh");
    } else {
        $(this).attr('data-icon', "plus").button().button("refresh");
    }

});

提前致谢 :)

弗雷德里克·哈米迪(FrédéricHamidi)

您的代码中有两个问题。

首先,条件表达式$(this).attr('data-icon', "plus")调用attr()的setter形式,该形式将始终返回被调用的jQuery对象。由于对象始终true处于布尔上下文中,else因此永远不会采用您的分支。

要解决此问题,您可以调用的getter形式attr()并比较结果:

if ($(this).attr("data-icon") == "plus") {
    // ...
}

再说一遍,打到的电话button()才是问题的核心。可以使用的适当方法是buttonMarkup(),但是从版本1.4开始不推荐使用(并将在1.5中删除)。

实际的解决方案是自己添加和删除适当的类,如下所示:

$(document).on("vclick", "#btnAddToCart", function () {
    console.log("btnAddToCart vclick event fired");
    $(this).toggleClass("ui-icon-plus ui-icon-minus");
});

您可以在此更新的小提琴中查看结果

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery Mobile停止事件

来自分类Dev

更改事件处理程序仅触发一次,jQuery

来自分类Dev

jQuery .change()事件仅触发一次

来自分类Dev

仅触发一次jQuery滚动事件

来自分类Dev

jQuery Mobile-事件触发两次

来自分类Dev

jQuery(window).resize函数仅触发一次,而不是每个像素触发一次

来自分类Dev

仅触发一次jQuery mousemove事件

来自分类Dev

jQuery Mobile每X秒自动刷新一次

来自分类Dev

jQuery事件触发一次,然后不再触发

来自分类Dev

jQuery Bootstrap Datepicker Click事件仅触发一次

来自分类Dev

仅触发一次jQuery函数?

来自分类Dev

jQuery使用keydown / keyup / keypress事件仅触发一次,而不是按住键时触发多次

来自分类Dev

jQuery Mobile刷新复选框仅工作一次-.checkboxradio('refresh')问题

来自分类Dev

更改事件处理程序仅触发一次,jQuery

来自分类Dev

jQuery UI效果.on单击仅触发一次

来自分类Dev

带有动画文本的.fadeToggle上的jQuery .click事件仅触发一次

来自分类Dev

仅触发一次jQuery滚动事件

来自分类Dev

jQuery Mobile-事件触发两次

来自分类Dev

jQuery(window).resize函数仅触发一次,而不是每个像素触发一次

来自分类Dev

jQuery bind()仅触发一次

来自分类Dev

jQuery animate仅通过keypress事件触发一次

来自分类Dev

jQuery .change()函数必须仅触发一次

来自分类Dev

jQuery移动点击事件触发vclick

来自分类Dev

jQuery keyUp函数触发多次,即使事件仅发生一次

来自分类Dev

单击事件仅触发一次JQuery / bPopup

来自分类Dev

jQuery触发器('click')仅工作一次

来自分类Dev

jQuery触发器一次仅适用于addEventListener指定的一个事件

来自分类Dev

jQuery 单击事件仅触发一次

来自分类Dev

JQuery 监听多个事件,但只触发一次

Related 相关文章

  1. 1

    jQuery Mobile停止事件

  2. 2

    更改事件处理程序仅触发一次,jQuery

  3. 3

    jQuery .change()事件仅触发一次

  4. 4

    仅触发一次jQuery滚动事件

  5. 5

    jQuery Mobile-事件触发两次

  6. 6

    jQuery(window).resize函数仅触发一次,而不是每个像素触发一次

  7. 7

    仅触发一次jQuery mousemove事件

  8. 8

    jQuery Mobile每X秒自动刷新一次

  9. 9

    jQuery事件触发一次,然后不再触发

  10. 10

    jQuery Bootstrap Datepicker Click事件仅触发一次

  11. 11

    仅触发一次jQuery函数?

  12. 12

    jQuery使用keydown / keyup / keypress事件仅触发一次,而不是按住键时触发多次

  13. 13

    jQuery Mobile刷新复选框仅工作一次-.checkboxradio('refresh')问题

  14. 14

    更改事件处理程序仅触发一次,jQuery

  15. 15

    jQuery UI效果.on单击仅触发一次

  16. 16

    带有动画文本的.fadeToggle上的jQuery .click事件仅触发一次

  17. 17

    仅触发一次jQuery滚动事件

  18. 18

    jQuery Mobile-事件触发两次

  19. 19

    jQuery(window).resize函数仅触发一次,而不是每个像素触发一次

  20. 20

    jQuery bind()仅触发一次

  21. 21

    jQuery animate仅通过keypress事件触发一次

  22. 22

    jQuery .change()函数必须仅触发一次

  23. 23

    jQuery移动点击事件触发vclick

  24. 24

    jQuery keyUp函数触发多次,即使事件仅发生一次

  25. 25

    单击事件仅触发一次JQuery / bPopup

  26. 26

    jQuery触发器('click')仅工作一次

  27. 27

    jQuery触发器一次仅适用于addEventListener指定的一个事件

  28. 28

    jQuery 单击事件仅触发一次

  29. 29

    JQuery 监听多个事件,但只触发一次

热门标签

归档