【问题标题】:jquery onclick not working on element from .load() function [duplicate]jquery onclick不适用于.load()函数中的元素[重复]
【发布时间】:2019-12-24 00:20:25
【问题描述】:

我在一个单独的文件中有一个 PHP sn-p,我正在使用 jquery 将其加载到一个 javascript 文件中:

let signUpMode = $(".modal");
  signUpMode.load("login_signup_popup.php");

这很有效,因为我可以在屏幕上显示它。但是,这个 sn-p 包含一个按钮,我想在加载 sn-p 的同一个 javascript 文件中单击该按钮。像这样简单的东西:

$(".signupbtn").on("click", function(){
    console.log("signed Up");
  });

但是,此点击无效。 signupbtn 是 sn-p 中的一个 div 元素。不知何故,我错过了一个额外的步骤,因为 jquery 似乎无法识别 sn-p 中的元素。

【问题讨论】:

  • 1] 检查你是否能够在浏览器中加载 signupbtn div 元素 2] 加载你的 php 文件后指定 js 代码,可能是你的 dom 需要时间来加载
  • 这样试试-> $(document).on('click','.signupbtn',function(){ console.log("signed Up");});
  • signUpMode.load(...).on("click", ...)

标签: javascript php jquery jquery-load


【解决方案1】:

已初始化的事件处理程序无法识别延迟加载的元素。所以你必须在父母身上设置事件。这应该有效:

$(document).on('click', '.signupbtn', function(){ 
    console.log("signed Up");
});

【讨论】:

  • 是的,这行得通。 (jQuery 新手)
【解决方案2】:

https://api.jquery.com/load/

你可以使用完整的函数来检查它是否已经加载,或者你可以把按钮函数放在那里。

  let signUpMode = $(".modal");
  signUpMode.load("login_signup_popup.php", function() {
    $(".signupbtn").on("click", function() {
      console.log("signed Up");
    });
  });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 2014-11-15
    相关资源
    最近更新 更多