2015-10-18 154 views
0

我有以下按鈕觸發點擊未激活的數據切換

<a class="btn-email" data-parent="#booking" data-target="#body-four" href="#body-four" aria-expanded="false" aria-controls="body-four">Call Back</a>

當用戶點擊它調用下面的jQuery函數

$("a.btn-email").click(function() { 
    var result = false; 
    if (!$("a.btn-email").hasClass('opening')) { 
     if ($("#body-four").hasClass('collapse') && !$("#body-four").hasClass('in')) { 
      var result = true; 

      $.ajax({ 
       type: "POST", 
       async: true, 
       url: "validate.php", 
       data: $("#bookingForm").serialize(), 
       success: function(data) { 
        var message = $.parseJSON(data); 
        if(message['status']=='failed') { 
        .... 
        } else { 
        $("a.btn-email").attr("data-toggle", "collapse"); 
        $("a.btn-email").addClass('opening'); 
        $("a.btn-email").trigger('click'); 
        } 
       } 
      }) 
      $("#dlgError").dialog("destroy"); 
     } 
    } else { 
     $("a.btn-email").removeClass('opening'); 
     $("a.btn-email").removeAttr('data-toggle'); 
    } 
}); 

如果AJAX驗證成功,則該按鈕該函數將數據切換屬性添加到按鈕,然後模擬點擊,以便數據切換打開引導手風琴,但triggle('點擊')不激活數據切換,我必須手動點擊按鈕agai ñ得到它的工作。

回答

0

將您的邏輯移入單獨的函數中,由JQuery調用。所以你可以給他們打電話,而不是觸發一個事件。

+0

的原因,我需要,因爲它使用的手風琴,只有這樣,才能得到這工作是實際點擊它,因爲我有可能引發的點擊不知道什麼功能是運行手風琴,因爲我沒有建立網站 –

0

您可以在else部分做到這一點:

.... 

else { 
     $("a.btn-email").attr("data-toggle", "collapse"); 
     $("a.btn-email").addClass('opening'); 
     var href = $("a.btn-email").attr("href");// get the href 
     $(href).collapse("toggle"); 
    } 

..... 
+0

我得到一個錯誤「Uncaught TypeError:$(...)。collapse不是一個函數」 –