2016-08-03 5 views
0

Ich verwende die unten Codierung, um eine Funktion in meinem Button-Element zu ändern.Problem beim Ändern einer Funktion in Javascript mit ie11

html:

<input id="btnCall" type="button" value="Next Call" onclick="Call();"/> 

Ursprünglich war der btnCall läuft Call() Funktion. Unter einer bestimmten Bedingung werde ich die Funktion innerhalb von btnCall ändern, indem ich die folgende Codierung benutze. js:

document.getElementById("btnCall").onclick = function() {txCall();}; 
ChgText("btnCall", "Transfer Call"); 

Ich bin mit IE11 in Windows 7 und die oben Javascript-Funktion kann manchmal manchmal funktionieren kann nicht funktionieren. Jeder weiß warum? Oder gibt es eine bessere Möglichkeit, eine Schaltfläche onclick-Funktion zu ändern, die in ie funktioniert?

+1

einen besseren Weg wäre, kein inline html 'onclick' Attribut zu verwenden und einfach' document.getElementById ("btnCall") .onclick = Call' oder 'document.getElementById (" btnCall "). onclick = txCall' wie erforderlich. Oder binden Sie den onclick an eine dritte Funktion, die über eine gewisse Logik verfügt, um zu entscheiden, ob Sie 'Call()' oder 'txCall()' aufrufen. (Übrigens bedeutet Ihre Erwähnung von IE, dass es in anderen Browsern funktioniert?) – nnnnnn

+0

Sind Sie sicher, dass der Code geändert wird, was btnCall ausführt, und dass er ausgeführt wird, nachdem das Element definiert wurde? –

+0

Jaromanda X, ja es ist auszuführen. Weil die ChgText-Funktion ausgeführt wurde und ich sehe, dass sich die Tastenbezeichnung in "Anruf übergeben" geändert hat. – Coolguy

Antwort

0

Versuchen Sie, die Zustandsüberprüfung und ruft in einer anderen Funktion zu bewegen:

<input id="btnCall" type="button" value="Next Call" onclick="myCall()"/> 

function myCall() { 
    if (condition) 
     (myCall2()) 
    else 
     (myCall3()) 

Ändern die onClick der Schaltfläche wahrscheinlich nicht der beste Weg zu gehen.

+0

Oh ... ist es? Ich dachte daran, die ursprüngliche Call() -Funktion nicht zu ändern. Also, das heißt also wirklich ein Problem, wenn es darum geht, die Onclick-Funktion zu ändern? – Coolguy

+0

IE hat viele Probleme, aber wenn es einige Zeit funktioniert, könnte es ein weiterer Fehler in Ihrem Code sein. Wenn Sie es einfügen, kann ich/wir für Sie prüfen und Ihren Kenner entsprechend ändern, wenn wir etwas finden. – Usir

1

Es ist eine schlechte Übung, Inline-Funktionen/Stile zu haben. Da Sie bereits haben und ID für den Button, können Sie

HTML

<input id="btnCall" type="button" value="Next Call" /> 

JS

Verwenden switch-Anweisung prüfen für Sie Code Standard

function init() { 
    document.getElementById("btnCall").onclick = function() { 
     switch(expression) { 
      case n1: 
      // code for case 1 
      break; 

      case n2: 
      // code for case 1 
      break; 

      default: 
      // your default code will run here 
     } 
    }; 
} 

window.onload = init(); 
Verwandte Themen