【问题标题】:Jquery HTML .load() with further jquery involvementJquery HTML .load() 进一步参与 jquery
【发布时间】:2012-09-03 04:25:25
【问题描述】:

所以我使用 .load 来显示输出数据的 php 文件中的一些信息。我想使用 .load 以便我可以偶尔或在特定操作时刷新这些数据。不幸的是,这会影响我网站的其他部分。有一个按钮被输出,jquery 通常会拦截该按钮。虽然现在我无法选择该类,因为由于使用了.load,它似乎不在我的源代码中。

我该如何解决这个问题?

谢谢

【问题讨论】:

    标签: jquery


    【解决方案1】:

    据我了解,您需要使用 jquery on() 在您的按钮上设置点击事件。不是您的按钮不存在,而是它被重新创建。因此,除非您使用 on() 进行设置,否则您的初始选择器将不起作用。您的代码将如下所示:

    $('.fRequest').on("click", ".friendConfirm", function () {
    
    });
    

    上面的代码会在页面上找到一个静态元素(最好是动态加载内容的父元素),并会寻找第二个参数中指定的类的所有元素。然后它将在第一个参数中找到的指定事件附加到所有找到的元素,即使它们是在初始 pageLoad 之后创建的。

    请注意,jQuery on() 适用于 jquery 1.7.1 或更高版本。如果您使用的是早期版本,您可能希望使用live()

    【讨论】:

    • 我相信,根据提问者(诚然不清楚)的语言,按钮被重新渲染,但在更新后不响应选择器。如果这个读数是正确的,那么重新创建处理程序就不是问题了。
    • 我相信这正是问题所在。如果他不重新创建处理程序,那么在动态创建内容时它应该如何工作?默认选择器仅在内容最初存在时才起作用。您需要对稍后创建的内容使用 on()。
    • 哦,好的。因此,当尚未重新创建数据但我应该使用 .on 时,您会说吗?让我试试这个。
    • 很难理解您的网站上到底发生了什么,但我很确定 jquery 的启用会解决您的问题。请尽快试用并告诉我们。
    • 我相信这就是我的问题所在。但是 .on 让我有点困惑。这是我的 .click 代码,它有效。 $(".friendConfirm").click(function(){ 似乎既有按钮又有 .class 但我的按钮是我的类。这是我用过的,并不奇怪我做错了,因为它不是工作。$('.friendConfirm').on("click", ".friendConfirm",function () {
    【解决方案2】:

    如果它在页面上仍然可见,则 jQuery 应该能够与之交互 - 我使用 jQuery 来更改加载到文档中的元素,该文档一直加载到 文档中。 p>

    我认为可能会发生两件事:您的 PHP 脚本正在生成的按钮的新副本与您的 jQuery 选择器所依赖的 ID/类/等不同,或者您正在按 ID 选择,并且您的更新过程会导致呈现多个具有相同 ID 的按钮,这将不起作用。

    【讨论】:

    • 抱歉我的英语不好。 1. .load 输出一些关于好友请求的php代码。 2. 此代码向用户显示在页面上,但不显示在浏览器的源代码中。 3. 当按钮被点击时,什么也没有发生。 4. 课程与以前相同。我仔细检查了它们,它们是正确的。 .on 仍然是一个解决方案吗?
    • “查看源代码”从不包括 Ajax 加载的 HTML - 它显示的源代码与初始加载期间的显示完全相同。如果类是相同的,并且您没有在.post 调用的回调中重新绑定单击事件,那么我会说@JoshMein 的答案是准确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-07
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多