2016-12-15 6 views
0

こんにちは、私は2つの別の機能に以下の機能を分離しました。関数は機能しませんが、何のエラーもありません。 主な機能:javascript関数を2つの異なるボタンonclickを解析する

function sipToggleMute() { 
      if (oSipSessionCall) { 
       var i_ret; 
       var bMute = !oSipSessionCall.bMute; 
       txtCallStatus.innerHTML = bMute ? '<i>Mute the call...</i>' : '<i>Unmute the call...</i>'; 
       i_ret = oSipSessionCall.mute('audio'/*could be 'video'*/, bMute); 
       if (i_ret != 0) { 
        txtCallStatus.innerHTML = '<i>Mute/Unmute failed</i>'; 
        return; 
       } 
       oSipSessionCall.bMute = bMute; 
       btnMute.value = bMute ? "Unmute" : "Mute"; 
      } 
     } 

解析された機能:

var bMute = !oSipSessionCall.bMute; 

ワン:

function sipMute() { 
if (oSipSessionCall) { 
    var i_ret; 
    var bMute = !oSipSessionCall.bMute; 
    txtCallStatus.innerHTML = '<i>Mute the call...</i>'; 
    i_ret = oSipSessionCall.mute('audio'/*could be 'video'*/, bMute); 
    if (i_ret != 0) { 
     txtCallStatus.innerHTML = '<i>Mute failed</i>'; 
     return; 
    } 
    oSipSessionCall.bMute = "Unmute"; 
} 

}あなたの機能の

function sipunMute() { 
    if (oSipSessionCall) { 
     var i_ret; 
     var bMute = !oSipSessionCall.bMute; 
     txtCallStatus.innerHTML = '<i>Unmute the call...</i>'; 
     i_ret = oSipSessionCall.mute('audio', bMute); 
     if (i_ret != 0) { 
      txtCallStatus.innerHTML = '<i> Unmute failed</i>'; 
      return; 
     } 
     oSipSessionCall.bMute = "Mute"; 
    } 
+1

パースされたとはどういう意味ですか?あなたはいつ "解析された"関数を呼びますか?他の場所に電話をした場合は、コードを投稿してください(例:HTML) –

+0

まずはお返事ありがとうございます。問題は、自分のコードにボタンが1つあることです。私がミュートのミュートを解除する必要があるたびに、そのボタンを押すと、ミュートとミュート解除の間でボタンの値が変更されます。ここでは、上記の関数を2つの異なるミュート機能とミュート解除機能にしたいだけです。これはただ受け付けることができますが、onclickだけです。 –

+0

あなたの "解析された関数"では、 'bmute'の値は' osipSessionCall.bMute = "..."を設定しているので、常にfalseになります。これは空ではない文字列なので真実ですつまり、!osipSessionCall.bMute'は 'true'です。これは基本的なJavascriptです。http://james.padolsey.com/javascript/truthy-falsey/ –

答えて

0

あなたoSipSessionCall.bMute財産の偽(ミュートではない)の初期状態を持っていると仮定すると:

var oSipSessionCall = { 
    bMute: false 
} 

あなたはあなたのプレイヤーをミュートおよびミュートを解除するために、単一のトグル機能を使用することができます(私はあなたがいると仮定していますjQueryを使用して、ボタンに名前プロパティtoggleがあります):

0

の両方が起因して、現在の状態をトグルしています関数sh trueに設定ウルド、他はfalse

function sipMute() { 
    if (oSipSessionCall) { 
     var i_ret; 
     var bMute = true; 
     txtCallStatus.innerHTML = '<i>Mute the call...</i>'; 
     i_ret = oSipSessionCall.mute('audio'/*could be 'video'*/, bMute); 
     if (i_ret != 0) { 
      txtCallStatus.innerHTML = '<i>Mute failed</i>'; 
      return; 
     } 
     oSipSessionCall.bMute = bMute; 
     // btnMute.value = "Unmute"; 
} 

に設定する必要があります。

function sipunMute() { 
    if (oSipSessionCall) { 
     var i_ret; 
     var bMute = false; 
     txtCallStatus.innerHTML = '<i>Unmute the call...</i>' 
     i_ret = oSipSessionCall.mute('audio', bMute); 
     if (i_ret != 0) { 
      txtCallStatus.innerHTML = '<i> Unmute failed</i>'; 
      return; 
     } 
     oSipSessionCall.bMute = bMute; 
     //btnMute.value = "Mute"; 
    } 

使用すると、2つの異なるボタンを使用している場合は、btnMutebtnUnmuteを言う、そしてあなたがbtnMute.value...は必要ありません。

+0

ありがとう –

関連する問題