Jquery加载div移位

发布于 2024-12-11 10:26:35 字数 374 浏览 0 评论 0原文

我正在使用以下内容在成功提交 ajax 表单后加载 div。

  $('#randomdiv').load('somepage.html #randomdiv');

一切都按照我想要的方式发生,除了当第一次使用按钮触发表单提交时,div 向下移动并在每个方向移动大约 4 个像素。我完全不知道原因是什么。

我正在使用相同的格式重新加载按钮。

 $('#submitbutton').load('somepage.html #submitbutton');

该按钮也显示相同的班次。我已经尝试了所有其他刷新方法,但我需要刷新数据库变量,并且此方法是唯一有效的方法。任何帮助将不胜感激。

I am using the following to load a div after a successful ajax form submit.

  $('#randomdiv').load('somepage.html #randomdiv');

Everything is happening exactly how I want it to, except that when the button is first used to trigger the form submit, the div shifts down and over about 4 pixels in each directions. I am absolutely stumped to what would be the cause.

I am reloading the button using the same format.

 $('#submitbutton').load('somepage.html #submitbutton');

The button is also displaying the same shift. I have tried every other method of refresh, but I am needing to refresh database variables, and this method is the only one that is working. Any help would be appreciated.

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

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

发布评论

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

评论(1

世界和平 2024-12-18 10:26:35

我认为您遇到了意外嵌套,表现为视觉偏移。来自精美手册

$('#result').load('ajax/test.html #container');

当该方法执行时,它会检索ajax/test.html的内容,然后jQuery解析返回的文档以查找具有容器ID的元素。该元素及其内容将被插入到 ID 为 result 的元素中,而检索到的文档的其余部分将被丢弃。

因此,当您执行此操作时:

$('#randomdiv').load('somepage.html #randomdiv');

您最终会在 HTML 中得到以下结构:

<div id="randomdiv">
    <div id="randomdiv">
        whatever was in somepage.html's #randomdiv
    </div>
</div>

当您可能期望这样时:

<div id="randomdiv">
    whatever was in somepage.html's #randomdiv
</div>

您可能只需要稍微重构 HTML 以获得外部容器元素,例如 #container,期望将 #randomdiv 插入其中:

<div id="container">
    <div id="randomdiv">
        ...

然后执行 $('#container').load('somepage.html #randomdiv') 来放置东西在其中。

I think you're getting accidental nesting that is manifesting as a visual offset. From the fine manual:

$('#result').load('ajax/test.html #container');

When this method executes, it retrieves the content of ajax/test.html, but then jQuery parses the returned document to find the element with an ID of container. This element, along with its contents, is inserted into the element with an ID of result, and the rest of the retrieved document is discarded.

So when you do this:

$('#randomdiv').load('somepage.html #randomdiv');

You end up with this structure in your HTML:

<div id="randomdiv">
    <div id="randomdiv">
        whatever was in somepage.html's #randomdiv
    </div>
</div>

when you're probably expecting this:

<div id="randomdiv">
    whatever was in somepage.html's #randomdiv
</div>

You probably just need to restructure the HTML a bit to have an outer container element, say #container, that expects to have #randomdiv inserted into it:

<div id="container">
    <div id="randomdiv">
        ...

And then do $('#container').load('somepage.html #randomdiv') to put things in it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文