javascript - Ajax(这个)不工作

标签 javascript jquery html ajax

当尝试访问 $container 的 '.box' 类时,在 ajax 调用中使用 (this) 不起作用。

$container.on(
        "click",
        ".box",
        function(event){
            var description;
            if($(this)[0].style.width == '70%'){
                $(this).find(".resultData").fadeOut('slow');
                $(this).css('width', '18%');
            }else{
                $.ajax({
                    url:'scripts/php/fetchResultsData.php',
                    data: {action:value},
                    type: 'post',
                    dataType: 'json',
                    success: function(data){
                        description = data[0];
                        $(this).css('width', '70%');
                        $(this).append("\
                            <div class='resultData'>\
                                <div class='resultName'>" + $(this).find("p").html() + "</div>\
                                <div class='resultDesc'>" + description +"</div>\
                            </div>");
                        /*alert($(this).find("p").html());*/
                    }
                    })
            }
            $container.masonry('reload');
        }
    );

如果不清楚我要做什么,我正在尝试更改动态元素的 css。但是例如,

$(this).css('宽度','70%');

根本没有调整 css。如果我将它移到 ajax,success 部分之外,它会起作用,但我无法获得“描述”。

最佳答案

你很接近。在您使用它的上下文中,“this”指的是 ajax 请求,而不是发出事件的事物。要解决此问题,请在发出 ajax 请求之前存储一份副本:

                   }else{
                        var me = this;
                        $.ajax({
                            ...
                            success: function(data){
                                description = data[0];
                                $(me).css('width', '70%');

关于javascript - Ajax(这个)不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11595266/

相关文章:

JQuery - 如何将单个 html 标记添加到某些 html?

javascript - 背景图像和 javascript 显示工件

javascript - 使用 'this' 选择属性,然后与选定的 HTML 属性进行比较

javascript - 使用 jQuery 添加多个动态值并输出结果

javascript - 堆叠对 javascript 中元素的更改以实现完美渲染的 CSS3 过渡

java - 如何在线编译Java代码?

javascript - React-router v2.0 browserHistory 不工作

javascript - Jquery Masonry 额外空间

javascript - 来自 chrome 扩展的 MySql 连接

javascript - 如何使用 Electron 注册可在焦点之外使用的键盘快捷键?