2017-09-09 1 views
0

上では動作しません。このスニペットを見てみてください、ページの読み込みでjQueryの:崩壊は、ページの読み込み

$("document").ready(function() {  
 
    $("#eth0_mode").change(function() { 
 
    $("#group").find(":input").prop("disabled", this.value === "dhcp"); 
 
    $("#group").collapse(this.value === "dhcp" ? "hide" : "show"); 
 
    }); 
 

 
    $("#eth0_mode").val("dhcp").trigger("change"); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" rel="stylesheet"/> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"></script> 
 

 
<form> 
 
    <select class="form-control" id="eth0_mode"> 
 
    <option value="dhcp">DHCP</option> 
 
    <option value="fallback">DHCP with fallback</option> 
 
    <option value="static">Static address</option> 
 
    </select> 
 

 
    <div id="group"> 
 
    <input class="form-control" type="text" placeholder="address"> 
 
    </div> 
 
</form>

を、それは「DHCP」とトリガに選択の値を設定します変更イベント。 入力フィールドが無効になるため、イベントが実行されます。しかし、部門は崩壊していない!

しかし、別のアイテムを選択して「dhcp」に戻った場合、divは崩壊します。

なぜですか?

+0

私はスニペット・ウィンドウで「スクリプトエラー」メッセージが表示されますが、私は何を理解していません実際のエラーです... – Mark

+1

エラーは "キャッチされていないエラー:ブートストラップのドロップダウンにPopper.jsが必要です" – Dekel

+0

固定、ありがとうございます。もちろん予期しない動作が残っています。 – Mark

答えて

1

あなたはそれを動作させるために#group要素にcollapseクラスを追加する必要があります。

$("document").ready(function() { 
 
    $("#eth0_mode").change(function() { 
 
    $("#group").find(":input").prop("disabled", this.value === "dhcp"); 
 
    $("#group").collapse(this.value === "dhcp" ? "hide" : "show"); 
 
    }); 
 

 
    $("#eth0_mode").val("dhcp").trigger("change"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" rel="stylesheet"/> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"></script> 
 

 
<form> 
 
    <select class="form-control" id="eth0_mode"> 
 
    <option value="dhcp">DHCP</option> 
 
    <option value="fallback">DHCP with fallback</option> 
 
    <option value="static">Static address</option> 
 
    </select> 
 

 
    <div id="group" class="collapse show"> 
 
    <input class="form-control" type="text" placeholder="address"> 
 
    </div> 
 
</form>

+0

はい、このようにdivは常に崩壊しますか?最初の項目がこの動作を必要とするケースです。ステータスを決定するには、変更イベントハンドラまでに依存する必要があります。 – Mark

+0

'collapse( 'hide')'を使うためには、要素は前に '' collapse show'する必要があります。別のオプションは、クラスを 'collapse show'に設定し、' collapse( 'hide')関数が機能するようにすることです。それに応じてコードを更新しました。 – Dekel

+0

この方法では、 'hide'アニメーションを取得することに注意してください。 – Dekel

関連する問題