簡體   English   中英

Javascript onclick需要單擊兩次,然后創建越來越多的服務器請求

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

因此,我正在嘗試創建一個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");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM