是否可以使用append()将页面div插入jQuery移动页面?

是否可以使用append()将页面div插入jQuery移动页面?,jquery,jquery-mobile,Jquery,Jquery Mobile,为了使用锚标记加载jQuery移动页面,只需将页面div的id作为href <a href="#page2">My link</a> <div data-role="page" id="page2"> <div data-role="header"></div> <div data-role="page"></div> <div data-role="footer"></

为了使用锚标记加载jQuery移动页面,只需将页面div的id作为href

<a href="#page2">My link</a>
<div data-role="page" id="page2">
    <div data-role="header"></div>
    <div data-role="page"></div>
    <div data-role="footer"></div>
</div>
我正在尝试这样做,但不断得到一个“无法调用未定义的方法\u触发器”

通过查看jQuery mobile(beta 1)源代码,我在第2600行发现了以下代码:

page = settings.pageContainer.children( ":jqmData(url='" + dataUrl + "')" );
其中pageContainer是HTML主体元素,dataUrl是我的页面div的id。这计算为未定义,似乎是我的问题的根源。当前是否可以像我这样将页面div插入jQuery移动页面


感谢您阅读一个很长的问题。:)

我刚刚在本地机器上进行了测试,这对我很有用:

<html>
<head>

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.css" />

<script src="http://code.jquery.com/jquery-1.6.1.min.js"></script>

<script src="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.js"></script>

<script>

function create_page(page_name) {
    $('body').append('<div data-role="page" id="' + page_name + '"><div data-role="content">Some content in here.</div></div>');
    //EDITED OUT, SEE BELOW $.mobile.changePage($('#' + page_name));
}

</script>
</head>
<body>



<div data-role="page">
<div data-role="content">
<a href="javascript:create_page('test_page_name');" data-role="button" style="padding:15px; font-size:30px;">TEST TEXT</a>
</div>
</div>

</body>
</html>
并使用它更改为动态创建的页面,如下所示:

<a href="javascript:change_page('test_page_name');" data-role="button" style="padding:15px; font-size:30px;">Change Page</a>


尝试使用散列(href=“#test_page_name”)链接到动态创建的页面时出现了一些奇怪的行为。在firebug中,我看到创建页面功能正确地将新页面附加到主体上,但是更改页面按钮将创建另一个页面,该页面的id与原始页面相同,但数据url设置正确。通过单击change page链接创建的data role=page div与第一个div的内容相同,并且通过create_page功能创建的页面被忽略。

我刚刚在本地计算机上进行了测试,这对我来说很有效:

<html>
<head>

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.css" />

<script src="http://code.jquery.com/jquery-1.6.1.min.js"></script>

<script src="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.js"></script>

<script>

function create_page(page_name) {
    $('body').append('<div data-role="page" id="' + page_name + '"><div data-role="content">Some content in here.</div></div>');
    //EDITED OUT, SEE BELOW $.mobile.changePage($('#' + page_name));
}

</script>
</head>
<body>



<div data-role="page">
<div data-role="content">
<a href="javascript:create_page('test_page_name');" data-role="button" style="padding:15px; font-size:30px;">TEST TEXT</a>
</div>
</div>

</body>
</html>
并使用它更改为动态创建的页面,如下所示:

<a href="javascript:change_page('test_page_name');" data-role="button" style="padding:15px; font-size:30px;">Change Page</a>


尝试使用散列(href=“#test_page_name”)链接到动态创建的页面时出现了一些奇怪的行为。在firebug中,我看到创建页面功能正确地将新页面附加到主体上,但是更改页面按钮将创建另一个页面,该页面的id与原始页面相同,但数据url设置正确。单击change page链接创建的data role=page div与第一个div的内容相同,而create_page函数创建的页面被忽略。

这不是我要做的。锚定标记需要有href=#divid。单击它不应触发对changePage的调用,因为在中使用现有页面div的id作为href将导致JQM自己这样做。我尝试了您的代码,对其进行了修改,以便一个按钮插入div,另一个按钮将新div的id作为其href。单击第二个按钮会导致返回到与以前相同的页面,我想我不太明白您想要做什么。您可以触发$('body')。追加(…);在documentready上,您可以使用散列驱动的href(即#divid)链接到它。示例:$(document.ready(function(){$('body').append('somecontent in here.');});这是我在一个更大的应用程序中遇到的问题。我有一个页脚导航栏。转到不同的主页会触发对子页面的append()调用,并在主页中创建一个列表。列表项是带有hrefs=#subpagedivids的锚定标记。。。很抱歉,如果我没有什么意义,也无法提供链接…谢谢你的帮助我看到了,因此你正在创建一个链接列表,用户可以单击,但你不想强迫他们立即查看页面。请看我上面的编辑。这不是我正在做的。锚定标记需要有href=#divid。单击它不应触发对changePage的调用,因为在中使用现有页面div的id作为href将导致JQM自己这样做。我尝试了您的代码,对其进行了修改,以便一个按钮插入div,另一个按钮将新div的id作为其href。单击第二个按钮会导致返回到与以前相同的页面,我想我不太明白您想要做什么。您可以触发$('body')。追加(…);在documentready上,您可以使用散列驱动的href(即#divid)链接到它。示例:$(document.ready(function(){$('body').append('somecontent in here.');});这是我在一个更大的应用程序中遇到的问题。我有一个页脚导航栏。转到不同的主页会触发对子页面的append()调用,并在主页中创建一个列表。列表项是带有hrefs=#subpagedivids的锚定标记。。。很抱歉,如果我没有什么意义,也无法提供链接…谢谢你的帮助我看到了,因此你正在创建一个链接列表,用户可以单击,但你不想强迫他们立即查看页面。见我的编辑上面。