我在OpenCart中爲我的新模板使用Materialise CSS(http://materializecss.com),現在我正在創建導航欄。當然,對於導航欄,我需要一個下拉菜單,並查看了此框架下拉按鈕的需求,但它需要一個唯一的ID來實際工作。如何讓Materialise使用下拉類而不是ID的類?
<!-- Dropdown Trigger -->
<a class='dropdown-button btn' href='#' data-activates='dropdown1'>Drop Me!</a>
<!-- Dropdown Structure -->
<ul id='dropdown1' class='dropdown-content'>
<li><a href="#!">one</a></li>
<li><a href="#!">two</a></li>
<li class="divider"></li>
<li><a href="#!">three</a></li>
</ul>
這不會在Opencart的工作,因爲它通過一組PHP代碼的循環,因此設置了相同的ID名稱具有子類在他們幾個菜單項。
如何更改此背後的Javascript以使其可以使用類而不是ID的?
編輯:
我相信這是觸發下拉的JS代碼。正如你看到它查找一個ID
// Click handler to show dropdown
origin.unbind('click.' + origin.attr('id'));
origin.bind('click.'+origin.attr('id'), function(e){
if (!isFocused) {
if (origin[0] == e.currentTarget &&
!origin.hasClass('active') &&
($(e.target).closest('.dropdown-content').length === 0)) {
e.preventDefault(); // Prevents button click from moving window
if (curr_options.stopPropagation) {
e.stopPropagation();
}
placeDropdown('click');
}
// If origin is clicked and menu is open, close menu
else if (origin.hasClass('active')) {
hideDropdown();
$(document).unbind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id'));
}
// If menu open, add click close handler to document
if (activates.hasClass('active')) {
$(document).bind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id'), function (e) {
if (!activates.is(e.target) && !origin.is(e.target) && (!origin.find(e.target).length)) {
hideDropdown();
$(document).unbind('click.'+ activates.attr('id') + ' touchstart.' + activates.attr('id'));
}
});
}
}
});
} // End else
非唯一ID不是有效的HTML;你需要調整你的PHP – RyanZim