我的功能包括我的函数第一个进程中的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("-");
}
我想要再次点击事件 现在其他条件是持续工作,但我想在一步完成后进入点击事件
答案 0 :(得分:1)
在您正在执行的功能的最后
$("button").removeClass("expandcollapse");
因为没有类expandcollapse
的按钮。它不会被第二次触发
结帐Demo。你的代码是这样的,不用二次点击。
因此,在实施之前,首先要更好地规划逻辑。
您可以使用此选择器使其正常工作(仅限,仅当您未动态添加按钮时)
$("button.expandcollapse").click(function(){
如果是动态的,那么使用您的选择器将此更改用于您的第二行代码
$(this).removeClass("expandcollapse");
建议: 最后为.removeClass()使用不同的类。为什么要删除与您触发事件的同一个类。请在click功能中使用其他类来实现其他功能。