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