Wenn Sie in jQuery Draggable für ein Element festlegen, wird verhindert, dass Unschärfe ausgelöst wird, wenn Sie auf das draggable-Element klicken

Wenn Sie in jQuery ein Weichzeichnungsereignis in einem Textfeld festlegen und ein anderes Element als ziehbar festlegen und auf das ziehbare Element klicken, wird das Weichzeichnungsereignis in FireFox nicht ausgelöst. IE ist ein bisschen besser, Sie erhalten das Unschärfe-Ereignis, aber Sie erhalten nicht das Klick-Ereignis für das ziehbare Element.

Wenn Sie im draggable-Konstruktor nicht "" cancel angeben, wird das Ereignis "blur" ausgelöst, aber das zu ziehende Element kann nicht gezogen werden.

jQuery v1.3.2 jQuery UI v1.7.2

Die console.log-Zeilen beziehen sich auf das FireBug-Plugin von FireFox.

<HTML> 
    <HEAD> 
        <TITLE>Blur/Click Workbench</TITLE> 
        <script src="js/jquery.js" type="text/javascript" ></script>
        <script src="js/ui/ui.core.js" type="text/javascript"></script>
        <script src="js/ui/ui.draggable.js" type="text/javascript"></script>
        <script type="text/javascript"> 
function blurring() {
    console.log('1 - blurring - ' + $( this ).attr('id'));
}

function clicking() {
    console.log('2 - clicking - ' + $( this ).attr('id'));
}

$(document).ready(function() {
    $( ".draggableTool" ).draggable( { cancel: "" } );

    $( '.property' ).blur( blurring );
    $( '#labelContainer' ).click( clicking );
});
        </script>
    </HEAD>
    <BODY>
        <input type='text' class='property' id='tb1' />
        <br />
        <input type='text' class='property' id='tb2' />
        <br />
        <label class='draggableTool' id='labelContainer' style='height:20px;position:absolute;'>
            <textarea id='taLabel' style='height:100%;background-color:white;border:1px solid grey;'>Label</textarea>
        </label>
    </BODY>
</HTML>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage