Javascript 异步包含的div的jQuery移动样式
我正在使用jQuery移动库开发一个移动网站。我在主页上有一个页眉、页脚和内容区域,所有链接都使用以下代码加载到内容区域:Javascript 异步包含的div的jQuery移动样式,javascript,jquery,css,jquery-mobile,Javascript,Jquery,Css,Jquery Mobile,我正在使用jQuery移动库开发一个移动网站。我在主页上有一个页眉、页脚和内容区域,所有链接都使用以下代码加载到内容区域: $("a").click(function() { var toLoad = $(this).attr('href'); // Loading image $('#content-body').html('<table class="loader"><tr><td><img src="<?php echo SITE_ROOT
$("a").click(function() {
var toLoad = $(this).attr('href');
// Loading image
$('#content-body').html('<table class="loader"><tr><td><img src="<?php echo SITE_ROOT; ?>/img/ico/loader.gif" /></td></tr></table>');
$('#content-body').load(toLoad);
但是,当我将该页面异步加载到
content
div中时,链接不会显示为按钮。有没有办法告诉jQuery Mobile在每次重新加载#内容时应用移动样式 你当然可以。您想使用.trigger('create')
初始化任何jQuery移动小部件:
$("a").click(function() {
var toLoad = $(this).attr('href');
// Loading image
$('#content-body').html('<table class="loader"><tr><td><img src="<?php echo SITE_ROOT; ?>/img/ico/loader.gif" /></td></tr></table>');
$('#content-body').load(toLoad, function () {
$(this).trigger('create');//it's that easy :)
});
});
看起来很有希望,但还是不行。作为一个简单的例子,当应用程序第一次加载时,它会对初始内容进行AJAX调用。我现在用$('#content body').load('/?home').trigger('create')代码>相关的HTML是:
,我现在试图加载的是一个文件,其中包含:
,那么您对为什么该链接没有显示为按钮有什么想法吗?@怀旧卡巴杰这里是我的代码示例:。现在我正在查看上面的代码,我可以明白为什么它不工作了,它在.load()
完成之前运行.trigger('create')
。因此,.trigger('create')
应该位于.load()
调用的回调函数中。我的答案已经更新了。
$("a").click(function() {
var toLoad = $(this).attr('href');
// Loading image
$('#content-body').html('<table class="loader"><tr><td><img src="<?php echo SITE_ROOT; ?>/img/ico/loader.gif" /></td></tr></table>');
$('#content-body').load(toLoad, function () {
$(this).trigger('create');//it's that easy :)
});
});
$('#content-body').delegate('a', 'click', function() {
var toLoad = this.href;//no need to use jQuery here since `this.href` will be available in all major browsers
// Loading image
$('#content-body').html('<table class="loader"><tr><td><img src="<?php echo SITE_ROOT; ?>/img/ico/loader.gif" /></td></tr></table>');
$('#content-body').load(toLoad, function () {
$(this).trigger('create');//it's that easy :)
});
});