2013-02-19 73 views
0

我有一個函數綁定到我的onClick爲特定的類。該功能似乎沒有在第一次嘗試時觸發,但在此之後正常工作。奇怪的是,我在腳本中的警報每次都有效,所以我無法弄清楚爲什麼其餘的函數失敗。第一次嘗試jQuery點擊事件失敗

$(document).ready(function() { 
    // capture original link and asset name on click 
    $("a.dggate").bind("click", function() { 
     window.tempURL = $("a.dggate").attr("href"); 
     window.assetTitle = $("a.dggate").attr("title"); 
     strAsset = assetTitle; 
     alert("click " + knownUser); 
     if (knownUser != true) { 
      //alert(tempURL); 
      $("a.dggate").fancybox({ 
       // choose which form to display 
       href: "http://www.domain.com/", 
       type: 'iframe', 
       scrolling: 'no', 
       width: "60%", 
       height: "100%", 
       titleShow: false 
      }); 
     } else { 
      // send blind form if user is known 
      bFormSubmit(); 
      return false; 
     } 
    }); // click 
}); // ready 

任何幫助,將不勝感激。

+0

微不足道的問題,但已知用戶==真正的第一次點擊? – Johan 2013-02-19 20:15:47

+1

可能與您的問題沒有關係,但處理程序中的$(「a.dggate」)應該是'$(this)'。否則,它適用於所有類的成員,而不僅僅是你點擊的那個(我假設你正在使用一個類,因爲可能有多個類)。 – Barmar 2013-02-19 20:19:58

+1

我想你誤解了如何使用FancyBox。在元素上調用'fancybox()'不會顯示該框,它只是將fancybox的click處理程序綁定到元素。然後下一次點擊運行fancybox的處理程序。 – Barmar 2013-02-19 20:30:14

回答

0

嘗試寫

$("a.dggate").click(function (e) { 
    e.preventDefault(); 

的而不是 「綁定」 行,似乎工作。

+0

這解決了這個問題。我認爲Barmar在向課程分配fancybox是正確的,但是,這個函數實際上是覆蓋鏈接的真實href的默認值,因爲它是一個外部url,並且還有其他時間與內聯頁。點擊功能似乎保留了原始的href,直到第二次點擊鏈接。非常感謝! – Avebone 2013-02-19 21:45:15

相關問題