jQuery不将代码应用于PHP输出的内容

jQuery不将代码应用于PHP输出的内容,php,jquery,Php,Jquery,我真的被一个问题困住了。我有一些PHP代码可以正确输出为HTML并在浏览器中显示(firebug显示源代码是正确的),但由于信息是由PHP发送以显示客户端列表的,因此单击“选项”菜单时我的jQuery将无法工作-它将被忽略。如果行是用平面HTML编写的,那么单击jQuery就可以用于“选项”菜单,因此我知道jQuery很好。单击“选项”时,“操作菜单”ul列表应切换其显示,并从无变为块 PHP: <?php include('dbConfig.php'); $term = $_POST['

我真的被一个问题困住了。我有一些PHP代码可以正确输出为HTML并在浏览器中显示(firebug显示源代码是正确的),但由于信息是由PHP发送以显示客户端列表的,因此单击“选项”菜单时我的jQuery将无法工作-它将被忽略。如果行是用平面HTML编写的,那么单击jQuery就可以用于“选项”菜单,因此我知道jQuery很好。单击“选项”时,“操作菜单”ul列表应切换其显示,并从无变为块

PHP:

<?php
include('dbConfig.php');
$term = $_POST['searchit'];

if($term == ''){
    echo '<div class="row"><div class="col-2"></div>Enter a search term</div>';
} else {
    if($client = $db->prepare("SELECT client_id, client_unique_id, client_first_name, client_last_name, client_organisation_name, client_telephone, client_list_all FROM clients WHERE client_unique_id LIKE ? OR client_first_name LIKE ? OR client_last_name LIKE ? OR client_organisation_name LIKE ? OR client_address_line_1 LIKE ? OR client_list_all LIKE ? ORDER BY client_id DESC")){

        $client->bind_param('ssssss', $term, $term, $term, $term, $term, $term);
        $client->execute();
        $client->bind_result($client_id, $client_unique_id, $client_first_name, $client_last_name, $client_business, $client_telephone, $client_list_all);
        $client->store_result();

        $string = '';
        if($client->num_rows > 0){
            while($client->fetch()){

                $properties = $db->prepare("SELECT property_id FROM properties WHERE property_client_id = ? LIMIT 1");
                $properties->bind_param('i', $client_id);
                $properties->execute();
                $properties->store_result();
                $properties->bind_result($property_id);

                if($properties->num_rows > 0 ){
                    $active = '<span class="label label-success">ACTIVE</span>';
                } else {
                    $active = '<span class="label label-warning">INACTIVE</span>';
                }

                if(!$client_business){
                    $client_business = 'N/A';
                }

                $properties->close();

                $string .= '<div class="row">';
                $string .= '<div class="col-2">'.$client_unique_id.'</div>';
                $string .= '<div class="col-3">'.$client_first_name.' '.$client_last_name.'</div>';
                $string .= '<div class="col-3">'.$client_business.'</div>';
                $string .= '<div class="col-2">'.$client_telephone.'</div>';
                $string .= '<div class="col-2 align-center">';
                $string .= '<div class="action">Options<span class="action-arrow"><i class="fa fa-caret-down"></i></span>';
                $string .= '<ul class="action-menu">';
                $string .= '<li><a href="view-client.php?client='.$client_id.'"><i class="fa fa-folder-open-o"></i>View client</a></li>';
                $string .= '<li><a href="edit-client.php?client='.$client_id.'"><i class="fa fa-pencil-square-o"></i>Edit client</a></li>';
                $string .= '<li><a onclick="deleteItem($(this))" style="cursor: pointer;" data-client-id="'.$client_id.'"><i class="fa fa-trash-o"></i>Delete client</a></li>';
                $string .= '</ul>';
                $string .= '</div>';
                $string .= '</div>';
                $string .= '</div>';
            }
            $client->close();
        } else {
            $string = '<div class="row"><div class="col-2"></div>No record found</div>';
        }
        echo $string;

    } else {
        echo '<div class="row"><div class="col-2"></div>ERROR: Could not prepare SELECT Client SQL statement.</div>';
    }
}
?>
$(document).ready(function () {
    $('.action').on('click', function () {
        $('.action-menu').fadeToggle(200);
        $(this).toggleClass('action-on');
    });
});

尝试如下更改jQuery:

$(document).ready(function () {
    $('div.row').on('click', '.action', function () {
        $('.action-menu').fadeToggle(200);
        $(this).toggleClass('action-on');
    });
});

无论何时加载.action类元素,这都将以它们为目标。将selector参数添加到.on()方法中可以让jQuery查找匹配的元素,无论这些元素是在何时创建的。如果在.row元素之外有.action元素,请选择包含所有元素的元素。如果所有其他操作都失败,请使用
body

尝试如下更改jQuery:

$(document).ready(function () {
    $('div.row').on('click', '.action', function () {
        $('.action-menu').fadeToggle(200);
        $(this).toggleClass('action-on');
    });
});

无论何时加载.action类元素,这都将以它们为目标。将selector参数添加到.on()方法中可以让jQuery查找匹配的元素,无论这些元素是在何时创建的。如果在.row元素之外有.action元素,请选择包含所有元素的元素。如果所有其他操作都失败,请使用
body

尝试如下更改jQuery:

$(document).ready(function () {
    $('div.row').on('click', '.action', function () {
        $('.action-menu').fadeToggle(200);
        $(this).toggleClass('action-on');
    });
});

无论何时加载.action类元素,这都将以它们为目标。将selector参数添加到.on()方法中可以让jQuery查找匹配的元素,无论这些元素是在何时创建的。如果在.row元素之外有.action元素,请选择包含所有元素的元素。如果所有其他操作都失败,请使用
body

尝试如下更改jQuery:

$(document).ready(function () {
    $('div.row').on('click', '.action', function () {
        $('.action-menu').fadeToggle(200);
        $(this).toggleClass('action-on');
    });
});

无论何时加载.action类元素,这都将以它们为目标。将selector参数添加到.on()方法中可以让jQuery查找匹配的元素,无论这些元素是在何时创建的。如果在.row元素之外有.action元素,请选择包含所有元素的元素。如果所有其他操作都失败,请使用
body

如果要动态添加HTML,可以将onclick事件添加到DOM加载中存在的任何可靠父级(例如:body)

尝试更改onclick,如下所示

$('body').on('click', '.action', function ()
{

    $('.action-menu').fadeToggle(200);

    $(e.target).toggleClass('action-on');

});

如果动态添加HTML,则可以将onclick事件添加到DOM加载中存在的任何可靠父级(例如:body)

尝试更改onclick,如下所示

$('body').on('click', '.action', function ()
{

    $('.action-menu').fadeToggle(200);

    $(e.target).toggleClass('action-on');

});

如果动态添加HTML,则可以将onclick事件添加到DOM加载中存在的任何可靠父级(例如:body)

尝试更改onclick,如下所示

$('body').on('click', '.action', function ()
{

    $('.action-menu').fadeToggle(200);

    $(e.target).toggleClass('action-on');

});

如果动态添加HTML,则可以将onclick事件添加到DOM加载中存在的任何可靠父级(例如:body)

尝试更改onclick,如下所示

$('body').on('click', '.action', function ()
{

    $('.action-menu').fadeToggle(200);

    $(e.target).toggleClass('action-on');

});


谢谢大家的支持。需要这项功能的jQuery代码需要放在PHP脚本末尾的实际HTML文件中——原因不得而知,因为它不会在javascript.js文件中侦听相同的代码。需要这项功能的jQuery代码需要放在PHP脚本末尾的实际HTML文件中——原因不得而知,因为它不会在javascript.js文件中侦听相同的代码。需要这项功能的jQuery代码需要放在PHP脚本末尾的实际HTML文件中——原因不得而知,因为它不会在javascript.js文件中侦听相同的代码。需要这样做的jQuery代码需要放在PHP脚本末尾的实际HTML文件中——原因未知,因为它不会侦听javascript.js文件中的相同代码

新元素是使用AJAX添加的吗?如果在加载页面后动态添加,则需要使用事件委派。请看,我已经更新了上面的PHP脚本,以显示整个代码。这一切都很完美,直到我尝试放入一个ul菜单,该菜单要求jQuery在单击时打开并关闭它。假设控制台中出现js错误。代码看起来很好,没有错误在firebug和js中出现-这就像浏览器完全忽略了代码一样,即使文档结构与在平面HTMLE中键入每个项目时显示的相同使用AJAX添加新元素?如果在加载页面后动态添加新元素,您需要使用事件委派。请看,我已经更新了上面的PHP脚本,以显示整个代码。这一切都很完美,直到我尝试放入一个ul菜单,该菜单要求jQuery在单击时打开并关闭它。假设控制台中出现js错误。代码看起来很好,没有错误在firebug和js中出现-这就像浏览器完全忽略了代码一样,即使文档结构与在平面HTMLE中键入每个项目时显示的相同使用AJAX添加新元素?如果在加载页面后动态添加新元素,您需要使用事件委派。请看,我已经更新了上面的PHP脚本,以显示整个代码。这一切都很完美,直到我尝试放入一个ul菜单,该菜单要求jQuery在单击时打开并关闭它。假设控制台中出现js错误。代码看起来很好,没有错误在firebug和js中出现-这就像浏览器完全忽略了代码一样,即使文档结构与在平面HTMLE中键入每个项目时显示的相同使用AJAX添加新元素?如果在加载页面后动态添加新元素,您需要使用事件委派。请看,我已经更新了上面的PHP脚本,以显示整个代码。这一切都很完美,直到我尝试输入一个ul菜单,该菜单要求jQuery打开它,然后单击“你想怎么办?”关闭它