2017-05-10 7 views
0

私はこのjsコードを共通jsファイルに持っています。共通ファイルからJavaScript関数をオーバーライドする方法は?

$('body').on('click','.close-modal',function(e) { 
     if ($('.modal-container').length > 1) { 
      $('.modal-container').last().remove(); 
      $('.modal-window').last().remove(); 
     } 
     else { 
      $('.modal-window, .modal-container').fadeOut(500).queue(function() { $('.modal-window, .modal-container').remove();}); 
     } 
     e.preventDefault(); 
    }); 

私は、その共通のJSはそれがcommon.jsで変更を加えることをお勧めではありませんので、ファイルを自分の要件にこのコードを上書きします。私の上書き機能 -

$('body').on('click','.close-modal',function(e) { 
if(strText.length >0 { 
      if ($('.modal-container').length > 1) { 
       $('.modal-container').last().remove(); 
       $('.modal-window').last().remove(); 
      } 
}   
e.preventDefault(); 
     }); 

のjsファイルは、以前と呼ばれるので、それは...これを達成するためのいずれかのオプションを私の変更を呼び出していません。

StrTextは私のjson_enoded文字列です。

+0

オーバーライドされた関数の前にアンバインド( 'click') ' – Searching

答えて

1

あなたのロード機能では、イベントをボディのクリックでアンバインドします。ハンドルをクリアするunbind

$(function() { 
    $('body').unbind('click') 
    $('body').on('click', '.close-modal', function (e) { 
     if (strText.length > 0 { 
      if ($('.modal-container').length > 1) { 
       $('.modal-container').last().remove(); 
       $('.modal-window').last().remove(); 
      } 
     } 
      e.preventDefault(); 
    }); 
}); 
関連する問題