2016-04-11 12 views
3

私は自分のウェブサイトにブートストラップとJqueryを使用していますが、問題があります。動的に作成された要素と同じレンダリングがありません - JQuery - ブートストラップ

レンダリングだ
<div class="row" style="margin-bottom: 10px;"> 
    <div class="col-xs-4 col-sm-2"> 
    <button type="button" class="action btn btn-default"> 
     <span class="glyphicon glyphicon-cog"></span> 
    </button> 
    <button type="button" class="action btn btn-default"> 
     <span class="glyphicon glyphicon-remove"></span> 
    </button> 
    </div> 
</div> 

That's the rendering

そして、それがレンダリングだ、私は動的に要素を作成するときに、私は私の「静的」要素と同じレンダリングを持っていない は、それは私のHTML要素です私は私の広告で同じHTML要素を入れているので、レンダリングはそのようなもので、なぜ私にはわからない

New buttons added but they don't have space between them

:I [追加]ボタンをクリックしてくださいDボタンlistenner:

 $("#btnAddBuild").click(function(){ 
     var htmlContent = "<div class='row' style='margin-bottom: 10px;'>" + 
           "<div class='col-xs-4 col-sm-2'>" + 
            "<button type='button' class='action btn btn-default'><span class='glyphicon glyphicon-cog'></span></button>" + 
            "<button type='button' class='action btn btn-default'><span class='glyphicon glyphicon-remove'></span></button>" + 
           "</div>" + 
          "</div>" 
     //console.log(htmlContent); 
     $("#rowListBuilds").append(htmlContent); 
    }); 

おかげで静的なHTMLマークアップで

+0

、あなたのコード内で追加ボタンを追加することができますか? – claudios

+1

違いは空白です。元のバージョンには、改行のためにボタン間にギャップがあります。追加されたjQueryバージョンは、連続した文字列として作成されます。最も簡単な修正は、作成する文字列のボタンの間にスペースを追加することです。 –

+0

あなたは大丈夫よ@RoryMcCrossan – KhoyaDev

答えて

3

、そこに(単一の空間に潰される)ボタンの間に複数のスペース文字がありますが、動的な要素に使用される文字列リテラルスペースはありません。

ちょうど私が(「\ n」は改行を経由して)一回、同様の問題があったと改行でテンプレート文字列を構築することによってそれを解決し、ボタン要素

$("#btnAddBuild").click(function() { 
 
    var htmlContent = "<div class='row' style='margin-bottom: 10px;'>" + 
 
    "<div class='col-xs-4 col-sm-2'>" + 
 
    "<button type='button' class='action btn btn-default'><span class='glyphicon glyphicon-cog'></span></button> " + 
 
    "<button type='button' class='action btn btn-default'><span class='glyphicon glyphicon-remove'></span></button>" + 
 
    "</div>" + 
 
    "</div>" 
 
    //console.log(htmlContent); 
 
    $("#rowListBuilds").append(htmlContent); 
 
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/css/bootstrap.css" rel="stylesheet" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="rowListBuilds"></div> 
 
<button id="btnAddBuild">Add</button>

+0

ありがとう、それは働いた!!!!!私は何のためにも多くのことを試みました!!!! – KhoyaDev

1

[space]文字を追加:

$("#btnAddBuild").click(function(){ 
     var htmlContent = ["<div class='row' style='margin-bottom: 10px;'>", 
           "<div class='col-xs-4 col-sm-2'>", 
            "<button type='button' class='action btn btn-default'><span class='glyphicon glyphicon-cog'></span></button>", 
            "<button type='button' class='action btn btn-default'><span class='glyphicon glyphicon-remove'></span></button>", 
           "</div>", 
          "</div>"].join("\n") 
     //console.log(htmlContent); 
     $("#rowListBuilds").append(htmlContent); 
    }); 

したがって、ブラウザには表示する1行の文字列は表示されませんが、 HTMLであなた自身を入力するならば。

それをチェックアウト: https://jsfiddle.net/np9m8gse/

+0

ありがとう!あなたのソリューションとArun P Johnyソリューションが機能しました! – KhoyaDev

関連する問題