2011-01-11 17 views
1

Ich verwende die brillante jcrop plugin, um Bild beschneiden zu implementieren.jQuery jcrop plugin: Wie veröffentlicht man?

Allerdings gibt es ein Problem. Ich möchte, dass der Benutzer einen Bereich auswählt und dann ein Dialogfeld anzeigt. Wenn sie etwas in das Dialogfeld eingeben und auf OK klicken, möchte ich, dass sie zu einem Bild zurückkehren, das nicht ausgewählt ist.

Dies ist mein Code:

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();    
    } 
}; 

jedoch mit diesem, wenn der Benutzer auf OK klickt oder auf der Eingabeaufforderung Abbrechen, kehren sie in ein Bild, das nach wie vor aktiv ist ‚Auswählen‘. Während sie die Maus bewegen, wählt sie weiter - sie können keinen neuen Bereich auswählen. Was sich gebrochen anfühlt.

Ich denke, es ist ein JavaScript-Flow-Problem - showAlert wird beendet und zurück in den vorherigen Zustand des Browsers, d. H. Mit einem Bereich ausgewählt - aber ich weiß nicht, wie man es umgehen.

Danke!

Antwort

0

Versuchen Sie folgendes:

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

Sie können die API auf diese Weise nicht greifen. Versuchen Sie folgendes:

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

Beachten Sie auch, Sie werden Ihre Callback-Funktion (en) im gleichen Umfang wie die jcrop_api Variable deklarieren müssen, wenn sie auf sie verweisen. Dies ist in Ihrem Beispielcode nicht der Fall.

+0

ich diese Korrekturen vorgenommen haben, aber Problem bleibt ... – AP257

+0

Als Autor Jcrop, kann ich Ihnen versichern, dass diese richtige Code ist. Ich vermute, dass Ihr Problem aufgrund Ihres ursprünglichen Beispiels möglicherweise ein variabler Gültigkeitsbereich ist. Tomalak hat die komplette Code-Struktur, die ich beschrieben habe, neu definiert. –

+0

Ja, dieser Code hat es behoben, danke! Es war in der Tat mein variables Scoping. – AP257

Verwandte Themen