2016-03-30 55 views
0

我在帳戶模塊的摘要視圖中創建了一個小部件。在這個小部件中,我想使用slideToggle來顯示一些細節。有時候代碼完美地工作,但有時它會雙擊切換並立即關閉細節。Vtiger - jquery slideToggle隨機切換兩次

JS:

$(document).ready(function() { 
     $('.potential_single_title').on('click',function(e) { 
      $(this).parent().find('.potential_comment_list').slideToggle('slow'); 
     }); 
    }); 

TPL:

<script src="resources/ChildCommentScript.js"></script> 
<link rel="stylesheet" type="text/css" href="resources/ChildCommentStyle.css"> 

{strip} 
    <div class="potential_comment_container"> 
    {foreach from=$OPP key=K item=POT} 
     <br /> 
     <div class="potential_single"> 
      <div class="potential_single_title"> 
       <strong>{$POT[1]}</strong> <span class="potential_assignee">Assigned to : {$POT[2]}</span> 
      </div> 
      <hr> 
      <div class="potential_comment_list"> 
       <div class="commentContainer"> 
       {foreach from=$COM[$K] item=POTCOM} 
        <div class="commentDetails" style="width:100%;"> 
         <div class="span1"> 
          <img class="alignMiddle pull-left" src="layouts/vlayout/skins/images/DefaultUserIcon.png"> 
         </div> 
         <span class="commentorName"><strong> {$POTCOM[0]}</strong></span> 
         <span class="pull-right"><p class="muted"><small>{$POTCOM[1]}</small></p></span> 
         <div class="commentInfoContent">{$POTCOM[2]}</div> 
        </div> 
       {/foreach} 
       </div> 
      </div> 
     </div> 
    {/foreach} 
    </div> 
{/strip} 

回答

2

滑動開關的用法似乎是正確的。我懷疑點擊有時會發生兩次,這又導致再次滑動。 修改JS以拒絕發生幻燈片操作時的點擊可能會解決問題。

$(document).ready(function() { 
    var sliding = false; 
    $('.potential_single_title').on('click',function(e) { 
     if(sliding) return false; 
     sliding = true; 
     $(this).parent().find('.potential_comment_list').slideToggle('slow', function() {sliding = false;}); 
    }); 
}); 

簡單的標誌來拒絕包括滑動時的點擊動作!

+0

Thnx for回答,但不幸的是div仍然有時雙重切換如果我刷新了幾次它再次正常工作它可能與Vtiger自己的JS文件衝突或可能發生,因爲該頁面是由php使用.tpl文件,這有些如何加載它兩次。 –

+0

耶是js似乎確定,我可以建議你進行一些調試,看看onclick是否發射兩次..我點擊兩次或如果是,確實是一個問題與js – Seabizkit

+0

等待是不是你有超過一個「poteotentalntal ntial_single_title在任何給定時間內頁上的」元素......這會觸發他們都考慮到其在** {從= $ OPP關鍵的foreach = K項= POT} ** – Seabizkit

0

這僅僅是展示如何看如果點擊是發生兩次。

$(document).ready(function() { 
      $('.potential_single_title').on('click',function(e) { 
       console.log("clicked") 
      }); 
     }); 

的點擊..如果在控制檯你看到點擊了兩次,你可以假設你的觸發快樂;-)

嘗試也把一個調試器在那裏...可以突出事物

$(document).ready(function() { 
       $('.potential_single_title').on('click',function(e) { 
        console.log("clicked"); 
debugger; 
       }); 
      }); 

in chrome調試器控制檯必須打開才能打到調試器行。

只是想排除愚蠢的東西..這是一個一個什麼是在網頁上沒有其他js ...喜歡也許你的包裝$(document).ready(兩次或什麼,只是havnt包括該代碼在這個問題?

+0

顯然即時通訊觸發快樂,因爲我點擊一次點擊兩次。至於你的問題,這是這個文件中的所有JS。在頁面上有更多的JS使用,但這是一個標準的vtiger JS文件 –

+0

你告訴我關於文檔準備好,所以我刪除它只是爲了看看會發生什麼,現在@lohith的答案工作。 thnx幫助老兄。 –