加载后将jQuery Mobile元素添加到页面中?

时间:2013-04-03 19:32:09

标签: jquery jquery-mobile markup jquery-mobile-button

在这个jsFiddle示例中......

http://jsfiddle.net/LFgSr/

...我试图在页面加载后在div中添加jQuery Mobile样式按钮。页面加载时页面上显示的大按钮看起来很棒...但是当我尝试“动态”添加另一个类似的按钮(通过单击“添加另一个按钮”)时,它不会被设置为样式它应该是(即使我通过jQuery'追加'按钮的正确HTML代码。)

这是完整的代码......

<!DOCTYPE html>
<html>

<head>

    <title>Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />
    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
    <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>

</head>

<body>

    <!-- Mark-up -->

    <input id="addButton" type="button" value="Add Another Button">

    <div style="width: 300px; height: 400px; top: 50px; left: 10px; position: absolute; border: 1px solid black;" >
        <section id="page1" data-role="page">
            <div class="content" data-role="content">
            <a href="#" data-role="button">This is a button!</a>
            </div>
        </section>
    </div>

    <!-- Script -->

    <script>
        $(document).ready(function() {
            $('#addButton').click(function() {
                $('.content').append('<a href="#" data-role="button">This is another button!</a><br />');
            });
        });
    </script>

</body>
</html>

我在这里缺少什么?如何让jQuery Mobile识别HTML的动态更新?

谢谢!

1 个答案:

答案 0 :(得分:3)

以下是一个有效的例子:http://jsfiddle.net/Gajotres/2uerX/

$(document).on('pagebeforeshow', '#index', function(){       
    $('#addButton').click(function() {
        $('.content').append('<a href="#" data-role="button">This is another button!</a><br />');
        $('[data-role="button"]').button();
    });
});

当您动态添加新的jQM内容时,jQM还必须增强新内容。如果是按钮,则使用:

完成
$('[data-role="button"]').button();

要了解更多信息,请查看我的其他答案/文章:jQuery Mobile: Markup Enhancement of dynamically added content