jQuery UI按钮切换
我正在尝试从POST操作的回调切换UI按钮。jquery UI按钮需要将“UI图标UI图标减号”或“UI图标UI图标选中”作为span.class 我试图切换-但切换只删除并添加回类的一部分-它不会交换整个类。这就是我目前所处的困境:jQuery UI按钮切换,jquery,jquery-ui,callback,toggle,Jquery,Jquery Ui,Callback,Toggle,我正在尝试从POST操作的回调切换UI按钮。jquery UI按钮需要将“UI图标UI图标减号”或“UI图标UI图标选中”作为span.class 我试图切换-但切换只删除并添加回类的一部分-它不会交换整个类。这就是我目前所处的困境: $('#toggle-page, a.toggle-page').click(function() { pageID = $(this).parent('div').attr('id'); $.post( "webadmin/pages.toggle.se
$('#toggle-page, a.toggle-page').click(function() {
pageID = $(this).parent('div').attr('id');
$.post(
"webadmin/pages.toggle.serialize.php",
{id : pageID },
function(data, textStatus, xhr) {
if ($("#"+pageID+" a#toggle-page span").hasClass('ui-icon ui-icon-minus')) {
$("#"+pageID+" a#toggle-page span").removeClass('ui-icon ui-icon-minus');
$("#"+pageID+" a#toggle-page span").addClass('ui-icon ui-icon-check');
}
if ($("#"+pageID+" a#toggle-page span").hasClass('ui-icon ui-icon-check')) {
$("#"+pageID+" a#toggle-page span").removeClass('ui-icon ui-icon-check');
$("#"+pageID+" a#toggle-page span").addClass('ui-icon ui-icon-minus');
}
}
);
});
我知道上面的代码不是正确的方法。。。但是有人能给我指出正确的方向吗?
Id等有点嵌套,因为有多个条目可以编辑-因此是pageID内容。这应该更接近您想要的内容。如果计划再次使用jQuery选择器,请始终缓存其返回:
$('#toggle-page, a.toggle-page').click(function() {
var $page = $(this).parent('div'),
pageID = $page.attr('id');
$.post(
"webadmin/pages.toggle.serialize.php",
{id : pageID },
function(data, textStatus, xhr) {
var $span = $page.find('a#toggle-page span');
if($span.hasClass('ui-icon-minus')) {
$span.removeClass('ui-icon-minus').addClass('ui-icon-check')
} else {
$span.removeClass('ui-icon-check').addClass('ui-icon-minus')
}
}
);
});
这应该更接近你想要的。如果计划再次使用jQuery选择器,请始终缓存其返回:
$('#toggle-page, a.toggle-page').click(function() {
var $page = $(this).parent('div'),
pageID = $page.attr('id');
$.post(
"webadmin/pages.toggle.serialize.php",
{id : pageID },
function(data, textStatus, xhr) {
var $span = $page.find('a#toggle-page span');
if($span.hasClass('ui-icon-minus')) {
$span.removeClass('ui-icon-minus').addClass('ui-icon-check')
} else {
$span.removeClass('ui-icon-check').addClass('ui-icon-minus')
}
}
);
});
我会这样做:
$('#toggle-page, a.toggle-page').click(function() {
pageID = $(this).parent('div').attr('id');
$.post(
"webadmin/pages.toggle.serialize.php",
{id : pageID },
function(data, textStatus, xhr) {
var node = $("#"+pageID+" a#toggle-page span");
node.toggleClass('ui-icon-minus');
node.toggleClass('ui-icon-check');
}
);
});
我会这样做:
$('#toggle-page, a.toggle-page').click(function() {
pageID = $(this).parent('div').attr('id');
$.post(
"webadmin/pages.toggle.serialize.php",
{id : pageID },
function(data, textStatus, xhr) {
var node = $("#"+pageID+" a#toggle-page span");
node.toggleClass('ui-icon-minus');
node.toggleClass('ui-icon-check');
}
);
});
哦,第一个如果行得通,第二个不行!因此,根据当前设置的内容,它将切换为一种方式。使用上面的代码集,它将从正切换到负,但不会返回。实际上,您只需要在第二个上设置一个
else if
,但下面的答案是一个更好的方法:)哦-第一个if将起作用-不是第二个!因此,根据当前设置的内容,它将切换为一种方式。使用上面的代码集,它将从正切换到负,但不会返回。实际上,您只需要在第二个代码集上添加一个else if
,但下面的答案是一个更好的方法:)我对jquery的所有内容都是陌生的-但您似乎在混合一些php?或者我错了($变量前面的符号…@标记,一点也没有。无论何时返回jQuery结果集,通常的做法是将其存储在以$
开头的变量中,以便将其与平面变量(布尔、字符串)和DOM元素区分开来。然后,在整个应用程序中,您知道$varname
可以接受任何jQuery方法(即$varname.addClass()
),但是myDiv
不能也必须这样使用:$(myDiv).addClass()
。希望这是有道理的。此外,这个答案更有效,因为它只查找一次$page
,并查找一次$span
,而不是$(“#”+pageID+…
,后者试图通过ID来查找它。我对整个jquery内容都不熟悉-但似乎您在混用一些php?或者我错了($sign front the variable…)@标记,一点也不。每当您返回jQuery结果集时,通常的做法是将其存储在以$
开头的变量中,以便您可以将其与平面变量(布尔值、字符串)和DOM元素区分开来。然后,在整个应用程序中,您知道$varname
可以接受任何jQuery方法(即$varname.addClass()
),但是myDiv
不能也必须这样使用:$(myDiv).addClass()
。希望这是有意义的。此外,这个答案更有效,因为它只查找一次$页面
,并查找一次$span
而不是试图通过ID查找它的$('#'+pageID+…
)。