2016-08-03 2 views
0

私のボタン要素の関数を変更するには、以下のコードを使用しています。ie11を使用してjavascriptの関数を変更する際に問題が発生する

HTML:

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

もともとbtnCallコール()関数を実行します。ある条件下では、btnCall内の関数を以下のコードを使用して変更します。 JS:

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

私は、Windows 7にIE11を使用していますし、JavaScript関数が時々動作しないことができ、時には作業することができます上記の。誰も知っている理由は?または、ボタンのonclick機能を変更するより良い方法がありますか?

+1

より良い方法を考えることができますインラインhtml 'onclick'属性を使用せず、' document.getElementById( "btnCall" ).onclick = Call'または 'document.getElementById(" btnCall ").onclick = txCall'を呼び出します。または、onclickを、 'Call()'か 'txCall()'のどちらを呼び出すかを決定するロジックを持つ3番目の関数にバインドします。 (ちなみに、あなたのIEの言及は、具体的には、他のブラウザで動作することを意味しますか?) – nnnnnn

+0

btnCallが実行されていることを変更するコードはありますか? –

+0

Jaromanda X、はい、実行されます。 ChgText関数が実行され、ボタンのラベルが "Transfer Call"に変更されたことがわかります。 – Coolguy

答えて

0

は、条件チェックを動かしてみて、別の関数を呼び出します:ボタンのonClickの変更

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

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

はおそらく行くための最大の方法ではありません。

+0

ああ...それは?私は元のCall()関数を変更しないと考えていました。つまり、onclick関数を変更するときに問題が発生するということですか? – Coolguy

+0

IEは多くの問題を抱えていますが、それがいくつかの時間を費やしているのであれば、コード内で別の間違いかもしれません。もしあなたがペーストビンしたら私はあなたを確認して、何かを見つけたらそれに応じて変更することができます。 – Usir

1

インライン関数/スタイルを使用することは悪いことです。あなたが既に持っているし、あなたのボタンのID以来、あなたは

HTML

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

JS

あなたのため

使用switchステートメントのデフォルトコード

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(); 
関連する問題