Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не работает $(this) внутри объекта (https://javascript.ru/forum/misc/75007-ne-rabotaet-%24-vnutri-obekta.html)

Daniel_sol 25.08.2018 14:29

Не работает $(this) внутри объекта
 
Добрый день, написал маленький алгоритм, так как хочется сделать максимально красиво и читабельно решил переписать код в "объектном стиле". Пытаюсь найти ошибку дошел до того что (this) jqery не распознает как "этот элемент на который кликнули" Помогите пожалуйста, код ниже
$(document).ready(function() {
$("body").on("click","span",function(){obj_opros.click_positive()});
$("body").on("click","i",function() {obj_opros.click_negative()});
$("body").on("click","button",function() {obj_opros.click_button_opros()});
 });
var obj_opros={
  click_positive: function() {
    $(this).parents().eq(1).removeAttr("class");
    $(this).parents().eq(1).addClass("panel panel-default panel-success");
        },
  click_negative: function(){

    $(this).parents().eq(1).removeAttr("class");
    $(this).parents().eq(1).addClass("panel panel-default panel-danger");
  },
}

рони 25.08.2018 15:25

Daniel_sol,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

рони 25.08.2018 15:34

Daniel_sol,
$("body").on("click","span",obj_opros.click_positive);

или так
$("body").on("click","span",function() {
  $.proxy(obj_opros.click_negative,this)()
});

Daniel_sol 25.08.2018 19:30

Cпасибо большое, так заработало


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