2013-03-26 11 views
5

でprogrammaticllyボタンを追加]ボタンをjQueryのモバイルスタイルを適用します。私はjqueryのモバイルボタンスローjqueryのコードの下に追加しようとすると後のjavascriptのコード

 // insert new button to bf div (breackfast div) 
     $("#bf").html('<a href="FoodCat/FilterIndex?TimeId=2&CurDate=0" data-role="button" > Add new </a> '); 

これは、jQueryのモバイルスタイル(データ-役割を意味するものではありません。 = "ボタン")??

以下

htmlです:

以下
<div data-role="collapsible-set" data-theme="i" data-split-icon="gear" data-split-theme="e"> 
     <div data-role="collapsible"> 

     <h3> Breackfast </h3> 
       <div id="bf" style="margin:0 !important;padding:0 !important; display:inline !important"> 
      <ul data-role="listview" data-theme="i" "> 
       <li> 

       <input type="button" tabindex="@ViewBag.CurInt" id="bdelete" value="DeleteFood" onclick="bfd();"/> 
       </li> 
        </ul> 
       </div> 
      </div> 
      </div> 

は、jQueryのコードです(PLZ注意:それはサービスを呼び出し、削除を行うことが、唯一のjQueryのモバイルスタイルとしてボタンをレンダリングしない問題)

   <script type="text/javascript"> 
        function bfd() { 
         var fp = '/api/service?prsnIduser1&MealTime=2&CurDate='+ $("#bdelete").attr("tabindex"); 
         $.ajax({ 
          url: fp, 
          type: 'Delete', 
          dataType: 'json', 
          contentType: 'application/json; charset=utf-8', 
         success: function() { 

          $("#bf").html('<a href="FoodCat/FilterIndex?TimeId=2&CurDate=0" data-role="button" > Add new </a> '); 
         $("#bf a").buttonMarkup(); 

          }); 
          } 
        </script> 

私はGoogleでとstackoverflowの上の多くの検索をした、そして失敗した私は、以下の試みが、resaultなし:

 $("div[data-role=collapsible]").collapsible({refresh: true }); 
     // or even add : 
      $("#bf").page(); 
      // or 
      $("#bf a").buttonMarkup(); 
+0

は、これはあなたが達成したい何ですか? http://jsfiddle.net/Palestinian/qYLVb/ – Omar

答えて

4

私が正しく理解していれば、jQuery Mobileボタンを動的に作成し、正しくスタイル設定したいと考えています。 http://jsfiddle.net/Gajotres/m4rjZ/

$(document).on('pagebeforeshow', '#index', function(){  
    // Add a new button element 
    $('[data-role="content"]').append('<a id="button" href="FoodCat/FilterIndex?TimeId=2&CurDate=0" data-role="button">Button</a>'); 
    // Enhance new button element 
    $('#button').button(); 
}); 

が、このARTICLEを見て、またはそれを見つける向上させることができるかのjQuery Mobileは、動的に追加されたコンテンツをどのように扱うかについての詳細を調べるには:ここで

は作業jsFiddle例ですHERE

ここに公式のjQueryモバイルボタンへのリンクdocumentationがあります。

+0

本当に残念ですが、それはどちらもうまくいかないことを知らせるために、私はこれを前に試してみました! –

+0

あなたは何か間違っている。それが例で働いている場合、あなたの場合にも動作する必要があります。 – Gajotres

+0

私はそれを 'pagebeforeshow'とバインドしたくないです。id 'bdelete'というボタンをクリックした後に誰かがやりたかったのです。 –

3

Gajotresが提案するように、button()メソッドを呼び出すことで、「手作業で」ボタンウィジェットを作成できます。

しかし、ウィジェットの種類に依存しない汎用ソリューションが必要な場合は、祖先要素のcreateイベントをトリガーすることによって、jQuery Mobileを新しいマークアップに「追いつける」ことができます。例えば

$("#bf").html('<a href="FoodCat/FilterIndex?TimeId=2&CurDate=0" data-role="button">Add new</a>') 
     .trigger("create"); 
+0

本当にご迷惑をおかけして申し訳ございません。 –

関連する問題