Home > Backend Development > PHP Tutorial > Regarding the delegate problem of jq

Regarding the delegate problem of jq

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-09-05 08:59:59
Original
1606 people have browsed it

<code>//PHP
<?php
include "db.php";
if(isset($_POST["category"])){


    $category_query = "SELECT * FROM categories";


    $run_query = mysqli_query($con,$category_query); 
    echo "
<div class='nav nav-pills nav-stacked'>
    <li class='active'><a href='#'><h4>Categories</h4></a></li>
    ";

    if(mysqli_num_rows($run_query)>0){
        
        while($row = mysqli_fetch_array($run_query)){
            $cid = $row["cat_id"];
            $cat_name = $row["cat_title"];

//问题在这里
            echo "
<li><a href='#' class='category' cid='$cid'>$cat_name</a></li>
            ";
        }
        echo "</div>";
    }
}


if(isset($_POST["brand"])){
    $brand_query = "SELECT * FROM brands";
    $run_query = mysqli_query($con,$brand_query);
    echo "
<div class='nav nav-pills nav-stacked'>
    <li class='active'><a href='#'><h4>Brands</h4></a></li>
    ";

    if(mysqli_num_rows($run_query)>0){
        while($row = mysqli_fetch_array($run_query)){
            $bid = $row["brand_id"];
            $brand_name = $row["brand_title"];
            echo "
<li><a href='#'>$brand_name</a></li>
            ";
        }
        echo "</div>";
    }
}

if(isset($_POST["getProduct"])){
    $product_query =  "SELECT * FROM products ORDER BY RAND() LIMIT 0,9";
    $run_query = mysqli_query($con,$product_query);
    if(mysqli_num_rows($run_query) >0 ){
        while($row = mysqli_fetch_array($run_query)){
           $pro_id = $row['product_id'];
           $pro_cat = $row['product_cat'];
           $pro_brand = $row['product_brand'];
           $pro_title = $row['product_title'];
           $pro_price = $row['product_price'];
           $pro_image = $row['product_image'];
           echo "
             <div class='col-md-4'>
                        <div class='panel panel-info'>
                            <div class='panel-heading'>$pro_title</div>
                            <div class='panel-body'>
                                <img style='width:300px;height:300px' src='product_image/$pro_image' />
                            </div>
                            <div class='panel-heading'>$.$pro_price.00
                              <button pid='$pro_id' style='float:right' class='btn btn-danger btn-xs'>AddToCart</button>
                            </div>
                        </div>
                        </div>
           ";
        }
    }

}


?></code>
Copy after login
Copy after login
<code>//JS

 $(document).ready(function() {
    cat();
    brand();
    product();

    function cat() {
        $.ajax({
                url: 'action.php',
                type: 'POST',
                data: {
                    category: 1
                },
            })
            .done(function(data) {
                //console.log(data);
                $("#get_category").html(data);

            });


    }

    function brand() {
        $.ajax({
                url: 'action.php',
                type: 'POST',
                data: {
                    brand: 1
                },
            })
            .done(function(data) {
                //console.log(data);

                $("#get_brand").html(data);

            });


    }


    function product() {
        $.ajax({
                url: 'action.php',
                type: 'POST',
                data: {
                    getProduct: 1
                },
            })
            .done(function(data) {
                //console.log(data);
                $("#get_product").html(data);

            });
    }

    //使用 delegate() 方法。on不能获取
    $("body").delegate(".category", "click", function() {
        alert(123);
    })
    // $(".category").on("click", function(event) {
    //     alert(13);
    // });
})</code>
Copy after login
Copy after login

Why is there no response when clicking when I use the on method? But the delegate does? Is it because this class is written in PHP and cannot be read by on? Or what?

Reply content:

<code>//PHP
<?php
include "db.php";
if(isset($_POST["category"])){


    $category_query = "SELECT * FROM categories";


    $run_query = mysqli_query($con,$category_query); 
    echo "
<div class='nav nav-pills nav-stacked'>
    <li class='active'><a href='#'><h4>Categories</h4></a></li>
    ";

    if(mysqli_num_rows($run_query)>0){
        
        while($row = mysqli_fetch_array($run_query)){
            $cid = $row["cat_id"];
            $cat_name = $row["cat_title"];

//问题在这里
            echo "
<li><a href='#' class='category' cid='$cid'>$cat_name</a></li>
            ";
        }
        echo "</div>";
    }
}


if(isset($_POST["brand"])){
    $brand_query = "SELECT * FROM brands";
    $run_query = mysqli_query($con,$brand_query);
    echo "
<div class='nav nav-pills nav-stacked'>
    <li class='active'><a href='#'><h4>Brands</h4></a></li>
    ";

    if(mysqli_num_rows($run_query)>0){
        while($row = mysqli_fetch_array($run_query)){
            $bid = $row["brand_id"];
            $brand_name = $row["brand_title"];
            echo "
<li><a href='#'>$brand_name</a></li>
            ";
        }
        echo "</div>";
    }
}

if(isset($_POST["getProduct"])){
    $product_query =  "SELECT * FROM products ORDER BY RAND() LIMIT 0,9";
    $run_query = mysqli_query($con,$product_query);
    if(mysqli_num_rows($run_query) >0 ){
        while($row = mysqli_fetch_array($run_query)){
           $pro_id = $row['product_id'];
           $pro_cat = $row['product_cat'];
           $pro_brand = $row['product_brand'];
           $pro_title = $row['product_title'];
           $pro_price = $row['product_price'];
           $pro_image = $row['product_image'];
           echo "
             <div class='col-md-4'>
                        <div class='panel panel-info'>
                            <div class='panel-heading'>$pro_title</div>
                            <div class='panel-body'>
                                <img style='width:300px;height:300px' src='product_image/$pro_image' />
                            </div>
                            <div class='panel-heading'>$.$pro_price.00
                              <button pid='$pro_id' style='float:right' class='btn btn-danger btn-xs'>AddToCart</button>
                            </div>
                        </div>
                        </div>
           ";
        }
    }

}


?></code>
Copy after login
Copy after login
<code>//JS

 $(document).ready(function() {
    cat();
    brand();
    product();

    function cat() {
        $.ajax({
                url: 'action.php',
                type: 'POST',
                data: {
                    category: 1
                },
            })
            .done(function(data) {
                //console.log(data);
                $("#get_category").html(data);

            });


    }

    function brand() {
        $.ajax({
                url: 'action.php',
                type: 'POST',
                data: {
                    brand: 1
                },
            })
            .done(function(data) {
                //console.log(data);

                $("#get_brand").html(data);

            });


    }


    function product() {
        $.ajax({
                url: 'action.php',
                type: 'POST',
                data: {
                    getProduct: 1
                },
            })
            .done(function(data) {
                //console.log(data);
                $("#get_product").html(data);

            });
    }

    //使用 delegate() 方法。on不能获取
    $("body").delegate(".category", "click", function() {
        alert(123);
    })
    // $(".category").on("click", function(event) {
    //     alert(13);
    // });
})</code>
Copy after login
Copy after login

Why is there no response when I click on the on method? But delegate does? Is it because this class is written in PHP and cannot be read by on? Or what?

Use on

for dynamically generated elements
<code> $('body').on('click','.category' , function() {
         alert(123);
     })</code>
Copy after login

Before you use a new API, you should fully understand its function through the documentation.

Related labels:
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Issues
php data acquisition?
From 1970-01-01 08:00:00
0
0
0
PHP extension intl
From 1970-01-01 08:00:00
0
0
0
How to learn php well
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template