簡體   English   中英

重置引導開關狀態

[英]Reset bootstrap switch state

首先,這是一個 JsFiddle:http: //jsfiddle.net/VTv2j/76/

這就是我想要發生的事情:

  1. 開關以不確定/中間狀態開始(這有效)
  2. 當用戶選擇任一狀態時觸發事件(這有效)
  3. 當使用點擊RESET開關回到不確定/中間狀態(這有效)
  4. 當用戶選擇任一狀態時觸發事件(這不起作用)

發生的情況是,如果用戶返回到之前的狀態,則不會觸發任何事件。 所以說它是 YES,他們點擊RESET ,然后再次點擊 YES - 沒有事件觸發(但如果它之前是 YES,然后重置為 NO 那么事件會觸發)。

我不知道如何解決這個問題。 我嘗試過諸如銷毀和重新創建開關之類的方法:

$('input[name=test]').bootstrapSwitch('destroy');
$('input[name=test]').bootstrapSwitch();

不幸的是無濟於事。

這對我來說很重要 -我只需要知道用戶何時從不確定狀態移動到 ANY 狀態 我其實不在乎他們選擇什么,只要他們選擇什么。 因此,如果有人能想到一種不同類型的解決方法(也許它會更容易),那肯定會受到歡迎。

任何幫助表示贊賞,這讓我發瘋。

這是上面代碼的有效版本: http : //jsfiddle.net/byzwng4t/1/

function initializeSwitch(selector) {
    $(selector).bootstrapSwitch('destroy', true);
    $(selector).bootstrapSwitch({
        'state': null
    }); 
    $(selector).on('switchChange.bootstrapSwitch', function(event, state) {
        console.log('change event' + (new Date()).getTime());
    });
}

$(function() {
    initializeSwitch('input[name=test]');

    $('.reset').click(function() {
        initializeSwitch('input[name=test]');
    });
});

訣竅是在銷毀開關之后再次綁定事件。

$('input[name=test]').bootstrapSwitch('state', $('input[name=test]').is(':checked'), true);

參考: http ://bootstrapswitch.site/methods.html

Stackoverflow: 引導開關 - 單擊按鈕后更改狀態

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM