jQuery 和jqTouch - ajax.load 问题

发布于 2024-08-23 01:29:17 字数 1201 浏览 6 评论 0原文

我认为我的问题更多地在于我的方法并且更多地应用于jquery,但是这里发生了一些奇怪的事情。

我正在使用 jQuery & jqTouch.我的 html 是:

<div id="home" class="current">
    <div class="toolbar">
        <h1>Header</h1>
    </div>
    <ul class="rounded">
        <li class="arrow"><a href="#currentloc">Current Location</a></li>
    </ul>       
</div>
<div id="currentloc">
    <div class="toolbar">
        <h1>Nearby</h1>
    </div>
</div>

我想做的是,当用户单击当前位置链接时,在 pageAnimationEnd 上我想加载一个页面并将其附加到 #currentloc。这是我的代码:

$('#currentloc').bind('pageAnimationEnd', function(e, info){
    $(this).load('results.php');
});

如您所见,这将完全替换#currentloc 的内容。我不确定如何附加 results.php 的内容而不替换已有的内容。我已经考虑过将 ajax 加载请求放在append: 中,

$(this).append(load('results.php'));

但这完全不起作用...

知道该怎么做吗?

更新

我尝试过的一件事虽然有效但感觉有点笨拙,但

$('#currentloc').bind('pageAnimationEnd', function(e, info){
 $(this).append('<ul></ul>');  
 $(this).find('ul').load('results.php');
});

感觉有一个更好的解决方案。

I think my problem lies more in my approach and applies more to jquery, but something weird is happening here.

I'm using jQuery & jqTouch. My html is:

<div id="home" class="current">
    <div class="toolbar">
        <h1>Header</h1>
    </div>
    <ul class="rounded">
        <li class="arrow"><a href="#currentloc">Current Location</a></li>
    </ul>       
</div>
<div id="currentloc">
    <div class="toolbar">
        <h1>Nearby</h1>
    </div>
</div>

What I'm trying to do is when a user clicks the Current Location link, on pageAnimationEnd I'd like to load a page and append it to #currentloc. Here's my code:

$('#currentloc').bind('pageAnimationEnd', function(e, info){
    $(this).load('results.php');
});

As you can see, this will entirely replace the contents of #currentloc. I'm not sure how I append the content of results.php without replacing what's already there. I've looked at putting the ajax load request inside of append:

$(this).append(load('results.php'));

but that totally wasn't working...

Any idea what to do?

UPDATE

One thing I've tried which works but feels a little clumsy is

$('#currentloc').bind('pageAnimationEnd', function(e, info){
 $(this).append('<ul></ul>');  
 $(this).find('ul').load('results.php');
});

Feel like there's a better solution to this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

○闲身 2024-08-30 01:29:17

jquery 中的 load 函数会替换内容,因此如果您希望保留当前内容,则必须创建另一个元素。
如果删除对 find 函数的调用,则可以使代码更短一些。

$('#currentloc').bind('pageAnimationEnd', function(e, info){
   $(this).append($('<ul />').load('results.php'));   
});

或者

$('#currentloc').bind('pageAnimationEnd', function(e, info){
   $('<ul />').load('results.php').appendTo(this);   
});

The load function in jquery replaces the content, so you must create another element if you wish to keep the current content.
You can could make your code a little shorter if you remove the call to the find function.

$('#currentloc').bind('pageAnimationEnd', function(e, info){
   $(this).append($('<ul />').load('results.php'));   
});

or

$('#currentloc').bind('pageAnimationEnd', function(e, info){
   $('<ul />').load('results.php').appendTo(this);   
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文