Передача значения через объект параметров JQuery - PullRequest
0 голосов
/ 22 мая 2011

У меня проблемы с пониманием того, как работают функции обратного вызова.

Я использую JCrop для обрезки множества изображений на странице.JCrop написан под впечатлением, что может быть только 1 изображение, которое нужно обрезать:

jQuery (function () {

              CropMe.Jcrop //CropMe is the class holding the image
              ({
                  aspectRatio: 1,
                  onSelect: updateCoords
              });
          }
      });

Когда он обновляеткоординаты через «onSelect» выводит координаты в функции «updateCoords», чтобы их можно было прочитать в форме, которую можно позже отправить:

функция updateCoords (c) {

$('.x'). val (cx);

$ ('. y'). val (cy);

$ ('.w'). val (cw);

$ ('. H'). Val (ch);}

проблема в том, что я создал МНОГО Jcrops в классе, а не в конкретном идентификаторе. Поэтому, когда вызывается updateCoords, он не знает, какие значения x, y, w, h нужно обновить.

Как бы я передавал аргумент (в частности, CropMe) через объект опции, чтобы я мог изменить 4соответствующие значения

соответствующий код: jquery.jcrop, js

Ответы [ 2 ]

1 голос
/ 22 мая 2011
          CropMe.Jcrop //CropMe is the class holding the image
          ({
              aspectRatio: 1,
              onSelect: function(c) { updateCoords(c, CropMe); }
          });

Тогда updateCoords будет выглядеть примерно так:

function updateCoords(c, cropMeObject) {
  // cropMeObject is the CropMe object
}
0 голосов
/ 22 мая 2011

Если вы хотите, чтобы ключевое слово this ссылалось на объект CropMe с помощью замыкания, должно работать:

CropMe.Jcrop //CropMe is the class holding the image
  ({
      aspectRatio: 1,
      onSelect:    (function(c) { return updateCoords(c); })(c,this);
  });     

теперь в функции updateCoords вы можете обратиться к this.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...