回报不起作用

时间:2016-08-02 11:42:25

标签: javascript jquery

我的功能包括我的函数第一个进程中的while循环已完成但在click事件中没有再次出现

$('body').on('click', 'button.expandcollapse', function() {
      // var currenttrid = $("tr.selected").attr("data-id");
      var parentid = $(".selected").data("id");
      var parrentid = (parentid) - 1;
      var rowclick = parseInt($(this).closest('tr').attr('data-id'));
      var currentid = rowclick + 1;

      if ($("tr[data-id='" + parrentid + "'] > td:first-child button").hasClass("expandcollapse")) {
        var parentleft = $("tr[data-id='" + rowclick + "']> td:first-child").css("padding-left");
        while (true) {
          var chiledtrleft = $("tr[data-id='" + currentid + "']> td:first-child").css("padding-left");

          if (chiledtrleft <= parentleft) {
            break;
          }

          $("tr[data-id='" + currentid + "']").hide();
          currentid = currentid + 1;
        }
        $("span", this).text
      } else {
        var parentleft = $("tr[data-id='" + rowclick + "']> td:first-child").css("padding-left");
        while (true) {
          var chiledtrleft = $("tr[data-id='" + currentid + "']> td:first-child").css("padding-left");

          if (chiledtrleft <= parentleft) {
            break;
          }

          $("tr[data-id='" + currentid + "']").show();
          currentid = currentid + 1;

        }
        $("button").removeClass("expandcollapse");
        $("span", this).text("-");
      }

我想要再次点击事件 现在其他条件是持续工作,但我想在一步完成后进入点击事件

1 个答案:

答案 0 :(得分:1)

在您正在执行的功能的最后

 $("button").removeClass("expandcollapse");

因为没有类expandcollapse的按钮。它不会被第二次触发

结帐Demo。你的代码是这样的,不用二次点击。

因此,在实施之前,首先要更好地规划逻辑。

您可以使用此选择器使其正常工作(仅限,仅当您未动态添加按钮时)

$("button.expandcollapse").click(function(){

Working Demo

如果是动态的,那么使用您的选择器将此更改用于您的第二行代码

$(this).removeClass("expandcollapse");

建议: 最后为.removeClass()使用不同的类。为什么要删除与您触发事件的同一个类。请在click功能中使用其他类来实现其他功能。