Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   В чём вся соль? (https://javascript.ru/forum/css-html/53590-v-chjom-vsya-sol.html)

DevOlegKosarev 10.02.2015 03:56

В чём вся соль?
 
Есть вот такая html разметка НА СТРАНИЦЫ БОЛЬШЕ НЕ ЧЕГО КРОМЕ ТЕГОВ BODY HTML
<ul>
<li id="id_element">
                        <img src="/assets/images/___.jpg" class="portrait" />
                        <div>
                            <span class="title">ID db: 603</span>
                        </div>
                        <div class="action">
<img src="/assets/images/icons/___.png"> 
<a class="send">Отправить</a>
<input value="603" class="id" type="text">
</div>
</li>
</ul>


Есть вот такой скрипт
jQuery(".send").click(function () {
jQuery(this).parents("#id_element").find(".title").css("background", "yellow");
                            
                            jQuery.ajax({
                                type: 'POST',
                                url: '/function/ajax/ajax.php',
                                data: {},
                                dataType: 'json',
                                success: jQuery.proxy(function (data) {
                                    if (data.error === false) {
jQuery(this).parents("#id_element").find(".title").css("background", "red");
                                    }
                                })
                            });
                        });


СТРОЧКА
jQuery(this).parents("#id_element").find(".title").css("background", "yellow");
РАБОТАЕТ


Жёлтым выделяется как надо запрос ajax проходит успешно. если писать
alert('ajax success')
тоже успешно обработается... НО почему не красится элимент в красный просте ajax запроса... Далее даже если буду писать
jQuery(this).parents("#id_element").css("background", "red");

Тоже не чего не красится... Хотя опятже до ajax запроса что то да красилась в чём соль?
Вопрос как мне обратится к элименту скажем .title ПОСЛЕ УСПЕШНОГО ОТВЕТА ОТ AJAX?
Зарание большое спасиба за помощь.

danik.js 10.02.2015 05:02

var $title = $(this).parents("#id_element").find(".title");

$title.addClass('processing');
...
success: () => { $title.removeClass('processing')


.title{
    background: red;
}
.processing{
    background: yellow;
}

DevOlegKosarev 10.02.2015 05:29

Цитата:

Сообщение от danik.js (Сообщение 355916)
var $title = $(this).parents("#id_element").find(".title");

$title.addClass('processing');
...
success: () => { $title.removeClass('processing')


.title{
    background: red;
}
.processing{
    background: yellow;
}

спс работает.... но в чём всё же соль почему не работает без $var?

ksa 10.02.2015 08:20

Цитата:

Сообщение от DevOlegKosarev
но в чём всё же соль

Она в this... ;)
Он ссылается на то, что он считает нужным (согласно спецификации), а не на то, что считаешь ты. :)

Вот danik.js в своем примере не использует его - у него работает как тебе нужно...


Часовой пояс GMT +3, время: 10:21.