1

私は画像のトリミングを実装するために素晴らしいjcropプラグインを使用しています。

ただし、1つの問題があります。ユーザーに領域を選択してもらい、ダイアログボックスを表示してもらいたい。ダイアログボックスに何かを入力して[OK]をクリックすると、何も選択されていない画像に戻るようにします。

これは私のコードです:

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終了してブラウザの前の状態に戻ります。つまり、領域が選択されています-しかし、それを回避する方法がわかりません。

ありがとう!

4

2 に答える 2

0

これを試して:

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
  });
});
于 2011-01-12T12:04:00.900 に答える
0

この方法でAPIを取得することはできません。これを試して:

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

jcrop_apiまた、変数を参照する場合は、変数と同じスコープでコールバック関数を宣言する必要があることに注意してください。これは、サンプルコードには当てはまりません。

于 2011-01-12T01:31:04.700 に答える