2015-06-09 140 views
0

我有一個系統,您首先選擇一個日期,然後單擊主頁按鈕並調用一個將有一個窗體的模態。當點擊按鈕而沒有選擇日期時,它會變成紅色並且什麼也不做。當您選擇日期並點擊按鈕時,它會添加模式的參數並再次單擊以打開表單。但是,表單打開N次,鎖定整個系統。誰能幫我?觸發('點擊')激活多次

HTML:

<div id="cidade-1256" class="col-sm-4 box-curso"> 
    <div class="plan wow fadeInLeft animated animated" data-wow-offset="120" data-wow-duration="1.5s" style="visibility: visible; animation-duration: 1.5s; -webkit-animation-duration: 1.5s; animation-name: fadeInLeft; -webkit-animation-name: fadeInLeft;"> 
    <div class="title">Brasília</div> 
     <div class="description"> 
     <ul><li><button type="button" class="btn btn-curso">AGO | 15 - 16</button></li></ul> 
     </div> 
     <a id="1256" class="btn btn-primary">ORDER NOW</a> 
    </div> 
    </div> 
</div> 

JS:

$(document).on('click', 'a[id]', function(e){ 
    var id_form = $(this).attr('id').replace('#', ''); 
    var id_order = '#' + $(this).attr('id'); 
    if($('#cidade-' + id_form).find('button').hasClass('active')){ 
     $(id_order).removeClass('btn-curso-error'); 
     $(id_order).attr('data-toggle', 'modal'); 
     $(id_order).attr('data-target', '#modal-form'); 
     $(this).trigger('click'); 
    }else{ 
     $(id_order).addClass('btn-curso-error'); 
    } 
}); 
+0

您可以用'$(本)的''而不是$(id_order)'沒有?我知道這不會解決問題,但它會更清晰,也嘗試鏈接它們以及 – SuckerForMayhem

+1

似乎是無限循環,不是嗎?按鈕總是有班級活動? – yuk

+0

@yuk這就是問題所在。謝謝! –

回答

2

我相信你需要從按鈕移除.active類,否則它會導致你所看到的無限循環。

看到下面的代碼片段,我想這就是你想要實現的。雖然,我可能不會使用相同的鏈接再次鏈接。

注意:我必須在片段中將#1256切換爲button,您可以將其保留爲a標記。

$("#1256").on('click', function(e) { 
 
    var id_form = $(this).attr('id').replace('#', ''); 
 
    var $button = $('#cidade-' + id_form).find("button"); 
 
    
 
    if($button.hasClass('active')){ 
 
     $button.removeClass('active'); 
 
     $(this).removeClass('btn-curso-error') 
 
       .attr('data-toggle', 'modal') 
 
       .attr('data-target', '#modal-form') 
 
       .trigger('click'); 
 
    } else { 
 
     console.log("error"); 
 
     $(this).addClass('btn-curso-error'); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id="cidade-1256" class="col-sm-4 box-curso"> 
 
    <div class="plan"> 
 
    <div class="title">Brasília</div> 
 
     <div class="description"> 
 
     <ul><li><button type="button" class="btn btn-curso active">AGO | 15 - 16</button></li></ul> 
 
     </div> 
 
     <button id="1256" class="btn btn-primary">ORDER NOW</button> 
 
    </div> 
 
    </div> 
 
</div>

+0

感謝您的回答。你是對的,問題在於正在進入循環的課程「活躍」。 –