Javascript jquery检查类问题,
我有一个按钮,根据一个类的值,应该向POST发送不同的值,但是不管发生什么,它只运行一个条件,无论我做什么,我只能让它发送POST方法=添加数据 这是我的密码Javascript jquery检查类问题,,javascript,ajax,jquery,jquery-selectors,Javascript,Ajax,Jquery,Jquery Selectors,我有一个按钮,根据一个类的值,应该向POST发送不同的值,但是不管发生什么,它只运行一个条件,无论我做什么,我只能让它发送POST方法=添加数据 这是我的密码 $("a.navlink").click(function (ev) { $(this).removeClass("active"); var url = $(this).attr("href") ev.preventDefault(); if($('a.navlink:not(.active)')) {
$("a.navlink").click(function (ev) {
$(this).removeClass("active");
var url = $(this).attr("href")
ev.preventDefault();
if($('a.navlink:not(.active)')) {
$.ajax ({
url: url,
type: "POST",
data: "method=add",
success : function (html) {
$('#accordion').accordion('destroy');
$("#accordion").append(html);
$('#accordion').accordion({
active: 0,
header:'h2.Blog'
});
//alert(accordion())
}
});
}
if ($(this).hasClass("active")) {
// $(this).addClass('active')
$.ajax ({
url: url,
type: "POST",
data: "method=delete",
success : function (html) {
alert("hello")
$(this).removeClass('active')
//alert(accordion())
}
});
}
});
基本上,我需要的是,如果单击按钮时,会添加一个名为active的类,并且ajax会运行,当再次单击时,需要删除该类并运行ajax,这可能吗?在第一个if子句中,您现在基本上要做的是检查$'a.navlink:not.active'是true还是false-$始终返回一个计算结果为true的对象。。你也应该在这方面上一节课。而您正在if之前删除“活动”类,那么以后如何比较它呢 不清楚您想做什么,但您想要的可能是这样的:
$("a.navlink").click(function(ev) {
var url = $(this).attr("href")
ev.preventDefault();
// If the link is not active, run 'add':
if(!$(this).hasClass('active')) {
$.ajax ({
url: url,
type: "POST",
data: "method=add",
success: function (html) {
$('#accordion').accordion('destroy');
$("#accordion").append(html);
$('#accordion').accordion({
active: 0,
header:'h2.Blog'
});
}
});
// Mark it as active
$(this).addClass('active');
// If the link is active, run 'delete':
} else {
$.ajax ({
url: url,
type: "POST",
data: "method=delete",
success: function (html) {
alert("hello")
}
});
// Unmark it.
$(this).removeClass('active');
}
});
该代码的用途对我来说没有多大意义,所以请告诉我我是否理解错了。在第一个if子句中,您现在主要做的是检查$'a.navlink:not.active'是真是假-$始终返回一个计算结果为真的对象。。你也应该在这方面上一节课。而您正在if之前删除“活动”类,那么以后如何比较它呢 不清楚您想做什么,但您想要的可能是这样的:
$("a.navlink").click(function(ev) {
var url = $(this).attr("href")
ev.preventDefault();
// If the link is not active, run 'add':
if(!$(this).hasClass('active')) {
$.ajax ({
url: url,
type: "POST",
data: "method=add",
success: function (html) {
$('#accordion').accordion('destroy');
$("#accordion").append(html);
$('#accordion').accordion({
active: 0,
header:'h2.Blog'
});
}
});
// Mark it as active
$(this).addClass('active');
// If the link is active, run 'delete':
} else {
$.ajax ({
url: url,
type: "POST",
data: "method=delete",
success: function (html) {
alert("hello")
}
});
// Unmark it.
$(this).removeClass('active');
}
});
这段代码的目的对我来说没有多大意义,所以请告诉我我是否理解错了。本质上是用户在第一次需要将类添加到链接时单击链接,以及将方法=调用传递到帖子的Ajax,当用户再次单击它时,它需要删除活动类并运行将method=delete发送到POST的ajax。当用户第一次单击链接时,它需要将活动类添加到该链接中,并运行将method=call传递到POST的ajax,当用户再次单击它时,它需要删除活动类并运行发送方法=delete to POST的ajax