Почему переменная не перейдет в jQuery.each? - PullRequest
1 голос
/ 16 октября 2011

Мой код:

$('.colorPick').click(function(e) {
var x = e.pageX - this.offsetLeft;
var y = e.pageY - this.offsetTop;
var canvas2 = this.getContext('2d');
var data = canvas2.getImageData(x, y, 1, 1).data;
var rgb = 'rgb(' + data[0] + ',' + data[1] + ',' + data[2] + ')';
$('.colorPicker').each(function(rgb) {
    var x = this.width;
    var y = this.height;
    var canvas1 = this.getContext('2d');
    gradient1 = canvas1.createLinearGradient(0, 0, x, y);
    gradient1.addColorStop(0, 'rgb(255, 255, 255)');
    gradient1.addColorStop(0.5, rgb);
    gradient1.addColorStop(1, 'rgb(0, 0, 0)');
    canvas1.fillStyle = gradient1;
    canvas1.fillRect(0, 0, x, y);
});
}).disableSelection();

Переменная rgb не перейдет к следующей функции .each?

Я новичок в этом, если ответ прост

1 Ответ

7 голосов
/ 16 октября 2011

Вы определяете rgb в качестве аргумента для анонимной функции, скрывая родительскую область действия rgb. Если вы не объявите его как аргумент, он найдет rgb из родительской области (что, я думаю, вам нужно):

// ...
var rgb = 'rgb(' + data[0] + ',' + data[1] + ',' + data[2] + ')';
$('.colorPicker').each(function() {
    // ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...