4

当我尝试在 jquery 移动按钮下面添加时,抛出 jquery 代码:

        // 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 移动风格 (data-role="button") ??

下面是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 上进行了很多搜索,但我在下面尝试但没有成功:

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

2 回答 2

4

如果我理解正确,您希望动态创建一个jQuery Mobile按钮并正确设置它的样式。

这是一个工作jsFiddle示例: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();
});

要了解有关 jQuery Mobile 如何处理动态添加的内容以及如何对其进行增强的更多信息,请查看这篇文章,或在此处找到它。

这是官方 jQuery Mobile 按钮文档的链接。

于 2013-03-26T11:31:52.860 回答
3

button()正如 Gajotres 建议的那样,您可以通过调用该方法“手动”创建一个按钮小部件。

create但是,如果您想要一个不依赖于小部件类型的通用解决方案,您可以通过触发祖先元素上的事件让 jQuery Mobile “赶上”新标记。

例如:

$("#bf").html('<a href="FoodCat/FilterIndex?TimeId=2&CurDate=0" data-role="button">Add new</a>')
        .trigger("create");
于 2013-03-26T11:36:35.623 回答