2017-04-16 20 views
1

我在webapp上有兩個問題,它們都是無線電輸入類型,但採取引導按鈕的外觀和一些屬性。
在每次點擊時,我想檢查哪些是頁面上選定的兩個按鈕。
當我點擊一個標籤時,標籤label收到類.active(我猜從bootstrap框架)。我想用它來過濾每次點擊用戶時選擇的兩個按鈕。JQuery延遲了一個事件以使用`click`事件處理程序檢索DOM對象

  • 問題是,如果我點擊選項1,首先點擊,按鈕變得活躍,但jQuery無法檢索元素。
  • 然後如果我重新點擊選項1或選項2,它會正確找到元素選項1(即使我點擊了2)。

在單擊選項和jQuery找到的選項之間存在一個單步延遲。

這裏是JS

注:我也通過在類input標籤的checked過濾嘗試和觀察完全相同的行爲

$(function() { 
    $("label.btn").click(function() { 
    console.log($("label.active").children()[0].id); 
    }); 
}) 

這裏是生成HTML哈巴狗

.btn-group(data-toggle='buttons') 
    label.btn.btn-primary 
    input#option1(type='radio', name='lorem') 
    |Option 1 
    label.btn.btn-primary 
    ... 

注意:
等待被編輯的答案... soluti上是替換click通過change

回答

1

可能與訂單的事件偵聽器添加。它們將按照它們添加到元素的順序執行。

嘗試添加小延遲。

$('button').click(function(){ 
 
    var $btn = $(this) 
 
    console.log('Has class when clicked = ', $btn.hasClass('active')); 
 
    setTimeout(function(){ 
 
    console.log('Has class after small delay = ', $btn.hasClass('active')); 
 
    },20); 
 
}).click(function(){ 
 
    // will add class after first click handler is fired 
 
    $(this).addClass('active') 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button>Click me</button>

+0

感謝。我可能會使用它。但我期待着一個不涉及這種伎倆的替代方案:)。將在今晚驗證你的答案。 – zakrapovic

+0

沒有更多的信息我懷疑你會得到很多其他的東西 – charlietfl

+0

假設我想使用輸入/無線電標準後面已經實現的東西(比如只有一個可能的選項),但我認爲我沒有做這件事right – zakrapovic