首先,这是一个JsFiddle:http://jsfiddle.net/VTv2j/76/
这就是我想要发生的事情:
发生的事情是,如果用户返回之前的状态,则不会发生事件。所以说它是YES,他们点击 RESET ,然后再次点击YES - 没有事件触发(但是如果之前是YES,则重置然后转为NO然后事件将触发)。 / p>
我不知道如何处理这个问题。我尝试过破坏和重新创建交换机等事情:
$('input[name=test]').bootstrapSwitch('destroy');
$('input[name=test]').bootstrapSwitch();
不幸的是无济于事。
这对我来说很重要 - 我需要知道的是当用户从不确定状态移动到任何状态时。只要他们选择了某些东西,我就不会真正关心他们的选择。因此,如果有人能够想到一种不同类型的解决方法(可能会让它变得更容易),那肯定会受到欢迎。
感谢任何帮助,这让我发疯。
答案 0 :(得分:3)
以上是上述代码的工作版本: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]');
});
});
诀窍是在销毁交换机后再次绑定事件。