我試圖將點擊事件鏈接到一個動態加載的div,但點擊事件沒有觸發。JQuery .click事件不起作用
代碼:
jQuery(document).ready(function() {
jQuery(document).on('click', '.subMenuItem', function()
{
alert('something');
});
});
我也都試過了。
jQuery(document).ready(function() {
jQuery(".subMenuItem").click(function()
{
alert('something');
});
});
PHP:
<?php
/* Connects to the DB and grabs all SubMenuItems for the related Main Category */
require '/DBConnect.php';
$mainCategory = $_GET['MainCategory'];
$findSubCategories = mysqli_query($connection, 'SELECT DISTINCT Sub_Category FROM Product_Master WHERE Main_Category ="' . $mainCategory . '" ORDER BY Sub_Category');
while ($subCategories = mysqli_fetch_array($findSubCategories))
{
$subCategory = $subCategories['Sub_Category'];
echo '<div class="subMenuItem" id="' . $mainCategory . 'xx' . $subCategory . '">';
echo $subCategory;
echo '</div>';
}
?>
AJAX產生的SubMenuBar:
$.ajax({
url: '/php/SubMenuBar.php',
data: {
MainCategory: mainCategory,
},
success: function(result) {
subMenuBar.html(result);
}
});
的檢查元素說,有這個腳本的最後一行的錯誤:(undefined是不是功能):
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery(".menuItem").click(function()
{
var menuItemContent = $('#MenuItemContentWrapper');
var subMenuBar = $('#SubMenuBar');
var mainCategory = $(this).attr('id').split('xx')[0];
menuItemContent.slideUp(375);
if ($(this).hasClass('active'))
{
subMenuBar.slideUp(375);
$(this).css("background-image", "url(../PictureLibrary/NavBarShortcuts/" + this.id + ".gif)");
$('.active').removeClass('active');
}
else
{
if (subMenuBar.hasClass('active'))
{
subMenuBar.slideUp('fast', function(){ subMenuBar.slideDown(375); });
}
else
{
subMenuBar.slideDown(375);
}
$.ajax({
url: '/php/SubMenuBar.php',
data: {
MainCategory: mainCategory,
},
success: function(result) {
subMenuBar.html(result);
}
});
$(this).siblings().filter(".active")
.removeClass("active")
.each(function(i){
$(this).css("background-image", "url(../PictureLibrary/NavBarShortcuts/" + this.id + ".gif)");
});
$('.active').removeClass('active');
subMenuBar.addClass('active');
$(this).addClass('active').css("background-image", "url(../PictureLibrary/NavBarShortcuts/" + this.id + "Active.gif)");
}
});
});
</script>
你的第一個例子應該用於類subMenuItem的動態加載元素。第二個不會。 – j08691
第1步。粘貼您的HTML。第2步。使用'console.log()',不要像調試工具那樣濫用alert。步驟3.在步驟1和可能的2之後,我們可以更好地解決問題。 :d –
@RUJordan我的HTML使用PHP和AJAX,根據以往的。點擊事件動態加載(動態地輸入基於被從數據庫加載它裏面subMenuItems的點擊次數subMenuBar) – PugsOverDrugs