关键字`this`在ajax函数中使用的问题

Lau*_*rke 1 php ajax jquery

好的,这是我在这里的一些疯狂的jquery代码.它做什么是去一个php文件来获得某种结果,然后滑下结果,但如果结果已经在那里只是滑下来

$('#compatibility h2').click(function(){
        var clicked = $(this);
        if($(this).hasClass('collapsed'))
        {
            $(clicked).removeClass('collapsed');
            if($($(this)[0].nextSibling).is('ul'))
            {
                $(this).next().slideToggle();
            }
            else
            {
            $.get("getproducts.php", {cid: $(this).attr('id'), did: $("#deviceId").val()},
                  function(data)
                  {   
                    $(clicked).after(data).next().slideToggle(); //adds a <ul> <li> </li> </ul>  
                  });
            }
        }
        else
        {

            $(this).addClass('collapsed');  
            $(this).next().slideToggle();
        }
        //$(this).css('margin','4px 0 7px');
});
Run Code Online (Sandbox Code Playgroud)

现在我的问题有点模糊,但我想知道为什么当我替换点击关键字时this,代码不会在点击的h2之后插入数据.另外,我想知道我是否以jquery的最佳方式进行此操作.

Håv*_*ard 5

你为什么做这个?var clicked = '#'+$(this).attr('id');

这应该工作:

var clicked = $(this);
Run Code Online (Sandbox Code Playgroud)