2017-07-05 4 views
4

Warum auf dieser Seite:Hintergrund Wechsel nach Alarm

https://jsfiddle.net/eddnhc5f/

Wenn ich drücken Sie die Taste c auf Firefox und Microsoft Rand, wird der Hintergrund vor dem Alarm geändert, aber in Opera und Chrome, nachdem ich drücken Alarm bestätigen.

function getKeyup(key) { 
 
    if (key == null) { 
 
    keycode = event.keyCode; 
 
    // To Mozilla 
 
    } else { 
 
    keycode = key.keyCode; 
 
    } 
 
} 
 

 
function TEST() { 
 
    document.body.style.backgroundColor = "BLACK"; 
 
    alert('Hello'); 
 
    return false; 
 
} 
 

 
function getKey(key) { 
 
    if (key == null) { 
 
    keycode = event.keyCode; 
 
    // To Mozilla 
 
    } else { 
 
    keycode = key.keyCode; 
 
    } 
 
    if (keycode == 67) { 
 
    //alert(condcheck); 
 

 
    TEST(); 
 
    return false; 
 
    } 
 
} 
 
$(document).ready(function() { 
 
    $(document).keydown(function(eventObj) { 
 
    getKey(eventObj); 
 
    }); 
 
    $(document).keyup(function(eventObj) { 
 
    getKeyup(eventObj); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
TEST

+0

Sie zumindest kann es beheben mit 'setTimeout (function() {alert ('Hallo');}, 0);' deshalb vor dem Alarm läuft ... – Ultrazz008

+0

Als Alarm ist ein asynchrones Ereignis, das Mittel es kann parallel ausgelöst werden.So wenn das Alarmereignis zuerst ausgelöst wird, wird es alle anderen zukünftigen Ereignisse blockieren/auffordern, bis Sie die Alarmbox schließen und wenn es auslöst, nachdem der Hintergrund gesetzt wurde, dann wird der sequentielle Effekt bedeuten, dass der erste Hintergrund gesetzt wird Dann wird der Alarm ausgeführt und alle anderen Ereignisse werden solange blockiert, bis der Benutzer die Warnung schließt und das Programm dem normalen Ablauf der Ausführung folgt. In diesen Browsern kann es zu Thread-Interpreten kommen. – sagar

+0

Es ist Browser-spezifisch, ich denke, die Hintergrundeinstellung verursachen einige kleine Verzögerung, die die Warnung vor dem Hintergrund ändern, aber wenn Sie console.log() vor der Warnung, wird es normal vor einer Warnung ausgeführt .. – Ultrazz008

Antwort

0

check this out in TEST demo

Ich habe Änderung() Funktion.

function getKeyup(key){ 
    if (key == null) { 
     keycode = event.keyCode; 
    // To Mozilla 
    } else { 
     keycode = key.keyCode; 
    } 
} 
function TEST() 
{ 
//document.body.style.backgroundColor = "BLACK"; 
alert('Hello'); 
document.body.style.backgroundColor = "BLACK"; 
return false; 
} 
function getKey(key){ 
    if (key == null) { 
     keycode = event.keyCode; 
    // To Mozilla 
    } else { 
     keycode = key.keyCode; 
    } 
    if (keycode == 67){ 
     //alert(condcheck); 

     TEST(); 
     return false; 
    } 
} 
$(document).ready(function(){ 
    $(document).keydown(function (eventObj){ 
     getKey(eventObj); 
    }); 
    $(document).keyup(function (eventObj){ 
     getKeyup(eventObj); 
    });  
}); 
+0

document.body.style.backgroundColor = "BLACK"; Anstelle dieser Aussage können Sie $ ('body') schreiben: css ('background-color', 'black'); – nani0077

+0

Hallo Ich möchte zuerst die Hintergrundfarbe geändert und nach Alarm angezeigt werden. Vielen Dank, Alex – Alex

+0

Kommentarzeile nach Alert-Anweisung beibehalten und Kommentarzeilen über Alert entfernen – nani0077