Javascript onclick需要点击两次,然后会创建越来越多的服务器请求

Javascript onclick requires two clicks, then creates an increasing amount of server requests

本文关键字:然后 创建 越来越多 请求 服务器 两次 onclick Javascript      更新时间:2023-09-26

所以我试图创建一个javascript函数,它获取一个php页面,并将其显示在页面的另一部分的div中。我已经设法做到了这一点,但我使用的clicked_id方法最初需要两次点击来注册id,然后在每次点击时发送点击次数作为请求。任何帮助都将不胜感激。

<script src="/javascript/jquery.min.js"></script>
<script src="demo.js"></script>
<link href="demo.css" type="text/css" rel="stylesheet">

<div id="tabs" ><?php include "tabMenu.php"; ?></div>
<div id="menu"><?php include "menuB.php"; ?></div>
<div id="body" ></div>
<div id="home"></div>
<div id="footer"></div>

var click_id;
var clickId = function(a) {
    var obj = a;
    var clicks = '#' + obj;
    $(clicks).click(function() {
        $("#home").load("body/" + obj + ".php");
    });
};
$(document).ready(function() {
    if ($('#home').is(':empty')) {
        $("#home").load("body/call.php")
    };
    clickId(click_id); {};
});  

选项卡菜单加载了php

<?php
    $content = file('tabMenu.txt');
    echo '<ul>';
    $click= array(
        'id="call" onClick="clickId(this.id)"',
        'id="policy" onClick="clickId(this.id)"',
        'id="client" onClick="clickId(this.id)"',
        'id="ifa" onClick="clickId(this.id)"'
    );
    foreach (array_combine($click,$content) as $code => $lines ) {
        echo  ('<li '.$code.'>' . $lines . '</li>');
    };
    echo'</ul>';
?>

我想您已经混淆了$(clicks).click()的作用——如果您将其放在代码的正确部分,它将与您的onClick="clickId(this.id)"做的事情相同,这就是为什么您会获得多次点击的原因。

解决问题的最简单方法是替换以下代码:

$(clicks).click(function() {
    $("#home").load("body/" + obj + ".php");
});

使用此代码:

$("#home").load("body/" + obj + ".php");