jQuery плагин jcrop: как выпустить? - PullRequest
1 голос
/ 11 января 2011

Я использую блестящий jcrop плагин для реализации обрезки изображения.

Однако есть одна проблема. Я хочу, чтобы пользователь выбрал область, а затем увидел диалоговое окно. Когда они вводят что-то в диалоговое окно и нажимают кнопку ОК, я хочу, чтобы они вернулись к изображению, где ничего не выбрано.

Это мой код:

jQuery(window).load(function(){
    var jcrop_api = $.Jcrop('#cropbox',{
        boxWidth: 1400,
        onSelect: showAlert
    });
});
function showAlert(c)
{
    var structidx = prompt("Enter number here: ", "");
    if (structidx!=null && structidx!="") {
                // TODO: some handling here
        alert("Entry has been saved");
        jcrop_api.release();
    } else {
        jcrop_api.release();            
    }
};

Однако при этом, когда пользователь нажимает OK или Отмена в приглашении, он возвращается к изображению, которое все еще активно «выбирается». Когда они перемещают мышь, она продолжает выделяться - они не могут выбрать новую область. Который чувствует себя разбитым.

Я думаю, что это проблема потока javascript - showAlert закрывает и возвращает меня в предыдущее состояние браузера, то есть с выбранной областью, но я не знаю, как ее обойти.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 12 января 2011

Попробуйте это:

jQuery(window).load(function () {
  // function definition first
  function showAlert(c) {
    var structidx = prompt("Enter number here: ", "");
    if (structidx!=null && structidx!="") {
      // TODO: some handling here
      alert("Entry has been saved");
    }
    jcrop_api.release();
  }

  // make a global variable by leaving off the "var" keyword
  jcrop_api = $.Jcrop('#cropbox',{
    boxWidth: 1400,
    onSelect: showAlert
  });
});
0 голосов
/ 12 января 2011

Вы не можете получить API таким способом. Попробуйте это:

$(window).load(function(){
  var jcrop_api = $.Jcrop('#cropbox',{...});
});

Также обратите внимание, что вам нужно объявить ваши функции обратного вызова в той же области видимости, что и переменная jcrop_api, если они ссылаются на нее. Это не так в вашем примере кода.

...