2016-12-20 6 views
4

私はこの奇妙な動作に直面していますが、回避策が見つかりません。Chromeで予期しないページの更新が発生する

クリックすると特定のメソッドが呼び出されるボタンがあります。 Firefoxでうまくいきます。 Chromeでは、ページ全体が更新されます。

$("#modoComparativa").click(function(){ 
 
    if($(this).hasClass("active")){ 
 
       $('#histFromDate').attr("placeholder","Date 1"); 
 
       $('#histToDate').attr("disabled","disabled").attr("placeholder","Date 2"); 
 
       startDatepickerComp(); 
 
      } 
 
      else{ 
 
       $('#histFromDate').attr("placeholder","Initial date"); 
 
       $('#histToDate').attr("disabled","disabled").attr("placeholder","Final date"); 
 
       startDatepicker(); 
 
      } 
 
      $('#clearDates').attr("disabled","disabled"); 
 
      // This function calls another function causing the odd behavior in Chrome 
 
      requestGraph(idDetail, idArea, "", ""); 
 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

私はクリックメソッドにセレクターと呼びますが、すべてをコメントアウトした場合、動作は同じです。それはすべてをリフレッシュします。

ボタンを押すたびにページをリフレッシュし、ブラウザデバッガにログ/エラーが残っていないので、これをデバッグする方法を理解できません。

すべてのアイデアをいただければ幸いです。

編集 - 要求されたとして、セレクタの追加:

<div class="form-group"><button class="tooltip3 btn btn-default glyphicon glyphicon-random" id="modoComparativa" data-toggle="tooltip" title="ACTIVAR COMPARATIVAS" data-placement="bottom"></button> 
          </div> 
+1

を示唆するためにlonesomedayをお願いしますか!また、Chromeでは、コンソールの上にある[ログを保存する]チェックボックスをクリックすると、ページの更新時にクリアされません。 –

+0

編集として追加されました。あなたの時間のおかげで、ログ保存機能を試してみましょう。 – lenord

答えて

6

(フォームの送信やアンカータグをクリックするように)あなたのHTML構文に起因する行動を防ぐためにあなたのクリックコールバックに偽のリターンを追加します。

$("#modoComparativa").click(function(event){ 
    event.preventDefault(); 

    // your existing code 
} 

編集:あなたのボタンは、フォーム内にある場合、あなたのhtml ...

を追加しましたので、あなたも自分のフォームを提出するのを防ぐために、タイプ=「ボタン」属性を追加することができます。

<button type="button" class="tooltip3 btn btn-default glyphicon glyphicon-random" id="modoComparativa" data-toggle="tooltip" title="ACTIVAR COMPARATIVAS" data-placement="bottom"></button> 

あなたが `#modoComparativa`要素のマークアップを追加できhttp://api.jquery.com/event.preventDefault/

+0

Genius!今は期待どおりに動作しています。とても有難い。 – lenord

+0

この超高速で正確な答えを受け入れるには5分も待たなければなりません。 – lenord

+3

'return false'はこれを行うための理想的な方法ではありません。正しい方法は 'event.preventDefault()'です。できればコールバック関数の先頭に置いてください。 – lonesomeday

関連する問題