#javascript #jquery
Вопрос:
Привет, друзья со всего мира. Я искал, как заставить этот скрипт работать, он предназначен для обрезки изображения с использованием координат, но, по-видимому, что-то не получается. Я довольно новичок в javascript и jQuery, но, думаю, я почти понял это.
Я получаю неопределенные ошибки в моей переменной value (v).
portada_next.on("click", function () {
if(portada_uploader.isValid amp;amp; !portada_uploader.isEmpty){
portada_next.parents(".carousel").carousel("next");
$.each(portada_uploader.inputs, function (v,k) {
let img = $(v.previewer.img).clone();
img.addClass("img-fluid");
$("#crop").append(img);
const nw = img.get(0).naturalWidth;
const nh = img.get(0).naturalHeight;
img.Jcrop({
minSize: 0,
aspectRatio: 2,
setSelect: [ 0, img.height()/2, nw,nh],
allowResize: true,
allowSelect: false,
trueSize: [nw,nh],
onChange: function (coords) {
my_coords = coords;
}
});
});
}
});
Этот сценарий работал до того, как был выполнен некоторый рефакторинг, но, поскольку я потерял представление об изменениях, я не знаю, что изменилось.
Комментарии:
1. ну, единственный способ
v
быть неопределенным — это если одно из значенийportada_uploader.inputs
не определено-console.log(portada_uploader.inputs)
и проверьте значения2. Вы правы, после проверки ответа Алессандро сценарий работает. Неопределенная проблема пришла из другой части, но теперь она исправлена. Большое спасибо за вашу помощь @JaromandaX
3. итак, дело было не
v
в том, что было неопределенно, а в томv.previewer
, что было неопределенно — потому что вы поменялись местами k и v… Держу пари, ошибка заключалась не в том, что v не определен, а в том, что v. предварительный просмотр был
Ответ №1:
Эй, я думаю, что нашел твою проблему, ты используешь ключ вместо значения, вот почему твой сценарий проваливается.
Эта строка: $.each(portada_uploader.inputs, function (k,v) {
говорит v (значение), k (ключ), но она должна быть инвертирована. Проверьте это, а затем проверьте, работает ли это.
portada_next.on("click", function () {
if(portada_uploader.isValid amp;amp; !portada_uploader.isEmpty){
portada_next.parents(".carousel").carousel("next");
$.each(portada_uploader.inputs, function (k,v) {
let img = $(v.previewer.img).clone();
img.addClass("img-fluid");
$("#crop").append(img);
const nw = img.get(0).naturalWidth;
const nh = img.get(0).naturalHeight;
img.Jcrop({
minSize: 0,
aspectRatio: 2,
setSelect: [ 0, img.height()/2, nw,nh],
allowResize: true,
allowSelect: false,
trueSize: [nw,nh],
onChange: function (coords) {
my_coords = coords;
}
});
});
}
});