javascript - jquery 检查类问题,

标签 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)')) {

        $.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 的对象。您也应该对其执行 hasClass。而且您要删除 if 之前的“active”类,那么您以后如何比较它?

不清楚您要做什么,但您想要的可能是这样的:

$("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');
    }        
});

该代码的用途对我来说意义不大,如果我理解错了请告诉我。

关于javascript - jquery 检查类问题,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2049249/

相关文章:

javascript - angularjs 小数点是逗号

javascript - 动态添加更多文本字段 MVC View

javascript - 如何从 FormData 中删除值

jquery - CrunchBase API 和 jQuery $.getJSON 的问题

javascript - 重复提交搜索表单时添加和删除 Owl Carousel 项目

jQuery 网卡验证

jquery - 如果没有选中复选框则显示确认

javascript - 将日期选择器值设置为空

java - Crypto JS AES-128 密码 - 等效的 Javascript 代码

javascript - 带有进度的 Jquery Ajax 上传正在重新加载页面