[英]JQuery click event is not being registered on <ul> returned from PHP Script
我有一个包含 2 个div
的 HTML 页面。 在它的第一个div
使用 AJAX 从 PHP 脚本加载页面后立即填充ul
。 第二个div
有一个静态ul
。 现在我希望在每个ul
上的两个div
,单击事件都应该起作用。 即,应该出现一个警报,说它被点击了。
这是PHP代码:
require_once "../../resources/script/dbconfig.php";
$query = "SELECT * FROM job_case";
$rslt = mysqli_query($link,$query);
echo "<ul>";
for($i=0;$i<mysqli_num_rows($rslt);$i++)
{
$job = mysqli_fetch_row($rslt);
echo "<li class=\"jobTitle\" id=jon".$job[0].">".$job[1]."</li>";
}
echo "</ul>";
HTML页面:
<div class="jobCase" id="govtJobCase">
<ul>
<li class="jobTitle" id="jobId">Item A</li>
<li class="jobTitle" id="jobId">Item B</li>
</ul>
</div>
<div class="jobCase">
<ul>
<li class="jobTitle" id="jobId">Item A</li>
<li class="jobTitle" id="jobId">Item B</li>
</ul>
</div>
我的问题是,在从 PHP 发布的第一个div
,没有事件工作,但在其他静态ul
标记事件中工作正常。
您应该向我们提供您的 jQuery 脚本。 但我可以帮助你也许:
对于事件,您不应该使用on()
而最好坚持使用delegate()
因为它允许将事件附加到初始页面加载后尚未创建的 DOM 对象。 例如,如果您的 ajax 请求返回<uL class='sample'></ul>
您可以执行以下操作:
$(document).delegate(".sample", "click", function(){
alert("You have clicked on a newly created <ul>");
});
如果您将事件处理程序放在两个 div 周围的元素上,您可以随心所欲地更新元素的内容,但事件处理程序保持原样。
<div class="container">
<!-- the contents of this div is populated using AJAX -->
</div>
javascript:
$('.container').on('click', function () {
// clicks will arrive here even when they originate from ajax loaded content
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.