Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Получение значения переменной внутри обработчика события jQuery (https://javascript.ru/forum/misc/39445-poluchenie-znacheniya-peremennojj-vnutri-obrabotchika-sobytiya-jquery.html)

Mbenga 30.06.2013 17:32

Получение значения переменной внутри обработчика события jQuery
 
Всем доброго времени суток.

Начал разбираться с ООП в Javascript, использую базовый класс Дина Эдвардса (http://dean.edwards.name/weblog/2006/03/base/) и jQuery.
Столкнулся с проблемой передачи значения свойства isOpened в область обработки mousedown:

var AppBar = Base.extend({
    constructor: function() {
      // some logic
    },

    isOpened: false,

    run: function() {
      var copied = this.isOpened;

      $(document).mousedown(function (event) {
        // some logic using isOpened and changing its value
          if (copied) {
            copied = false;
            $("#" + elementId).hide();
          } else {
            copied = true;
            $("#" + elementId).show();
          }
      });
    }
  });


Сейчас у меня создается новая переменная
var copied = this.isOpened;
, для того, чтобы внутри mousedown я мог получить и поменять её значение.
Вопрос заключается в следующем - можно ли каким-то образом внутри mousedown получать значение this.isOpened объекта AppBar, а не использовать copied? Потому что фактически хотелось бы менять значение isOpened, которое определяет состояние объекта, а не copied.

vadim5june 30.06.2013 18:00

Цитата:

Сообщение от Mbenga
Потому что фактически хотелось бы менять значение isOpened, которое определяет состояние объекта

Если бы написали
var copied = this;

то внутри mousedown
copied.isOpened=true;//поменяли значение isOpened

Mbenga 01.07.2013 10:57

Действительно, спасибо, что-то затупил)


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