Jquery 简单HTML DOM点击问题

Jquery 简单HTML DOM点击问题,jquery,html,dom,Jquery,Html,Dom,我有一个带有index.php页面的网站,该页面带有与数据库连接并返回结果的AJAX Live Search。其中一个结果是: <div id="searchlinktovideo">Video</div> 它不起作用,我认为它可能与HTMLDOM有关,但我不知道从哪里开始解决这个问题 目前,您可以在以下位置找到代码(单击搜索并键入“Video”-结果显示为HTML,但JQUERY对其不起作用))如果动态添加了Video(听起来像是这样),那么您的问题可能是您试图在项目

我有一个带有index.php页面的网站,该页面带有与数据库连接并返回结果的AJAX Live Search。其中一个结果是:

<div id="searchlinktovideo">Video</div>
它不起作用,我认为它可能与HTMLDOM有关,但我不知道从哪里开始解决这个问题

目前,您可以在以下位置找到代码(单击搜索并键入“Video”-结果显示为HTML,但JQUERY对其不起作用))

如果动态添加了
Video
(听起来像是这样),那么您的问题可能是您试图在项目实际进入页面之前安装事件处理程序。由于找不到该项,因此未安装任何事件处理程序,因此最终什么也不做

有几种可能的解决方案

  • 您可以使用委托事件处理,它可以处理动态添加的元素
  • 将项目添加到页面后,可以安装事件处理程序
  • 对于委托事件处理,您将使用以下方法:

    $(document).on("click", "#searchlinktovideo", function () {...});
    

    理想情况下,您不必使用
    $(document)
    而是在
    #searchlinktovideo
    附近为静态父级(未动态添加的父级div)使用选择器,您可以看到jquery在页面准备好后立即查找
    searchlinktovideo
    ,但ajax请求在页面准备好后完成,因此,当它搜索时,它什么也找不到。你需要使用

    $( document ).ajaxComplete(function() {
     $("#searchlinktovideo").click(function () {
     ..
     ..
     ..
     });
    
    });
    

    浏览器错误控制台或调试控制台中是否存在任何错误?并且,请在您的问题中发布相关的HTML。然而,授权的点击再次出现!;)这与解决OP的问题有什么关系?在ajax完成后调用函数就可以解决这个问题。因此,当ajax完成时,这将被调用。这样就可以链接到元素searchlintovideo。因此,每当页面中的任何ajax调用完成时,您都要连接一个额外的单击处理程序?Op没有说会有多个调用方。Op没有说在整个页面生命周期中只有一个ajax调用。这不是解决问题的安全方法。
    $( document ).ajaxComplete(function() {
     $("#searchlinktovideo").click(function () {
     ..
     ..
     ..
     });
    
    });