2016-10-29 9 views
1

タイトルごとに、変更イベントを検出しようとしています(DOM検査時に発生していないようです)this jsfiddle 。ラジオ入力は、ブートストラップクラスを使用してスタイリングされます。なぜ私は変更を得ていないのですか?参考のためブートストラップでラジオ入力(ボタンとしてラベル付けされたラベル付き)の変更イベントを検出する4

は、ここでいくつかのコードは次のとおりです。

<div class="btn-group" data-toggle="buttons"> 
    <label class="btn btn-sm btn-primary active"> 
    <input type="radio" name="preview" id="preview-enabled" value="true" autocomplete="off" checked>Alice 
    </label> 
    <label class="btn btn-sm btn-secondary"> 
    <input type="radio" name="preview" id="preview-disabled" value="false" autocomplete="off">Bob 
    </label> 
</div> 

ボタンがクリックされたときに入力ラジオが変更されていません。

私も入力radio要素の「確認」属性が(変更されません(ただしjqueryのはthe official instructionsごとに、ブートストラップのjsの前に含まれている)

答えて

1

をjqueryのは、ブートストラップのJSのために必要であることを奇妙なエラーを取得しています従ってeventListenerを引き起こさない);変更する要素のunderlying DOM propertycheckedです。

したがって、ソリューションはMutationObserverでそのノードのDOMプロパティの変更をリッスンすることになると思われます。しかし、this doesn't work eitherは、DOMの変更ではないため、状態の変更のみです。そして、ReactのようなシャドウDOMフレームワークを使用しないと、ポーリングなしでこれを追跡する方法はないようです。

+0

'elem.onchange'を使うとうまくいくようです:https://jsfiddle.net/zav9brcs/2/ – leeb

関連する問題