我正在使用smarty在cms中动态创建菜单。我有它为我的菜单和HTML生成jquery。我正在使用类关闭菜单项和ID来打开它们。 (见下面的逻辑)。除非有人点击两次相同的菜单项,否则它会很好 - 在这种情况下它关闭项目然后重新打开它。我也试过更改项目的ID,但这并没有解决问题。
示例代码是
$(document).ready(function() {
$('#about-us').click(function() {
$('.second-level-menu').slideUp('fast', function() {});
$('#about-us-menu').slideDown('fast', function() {});
$('#about-us').attr('id', 'about-us-close');
});
$('#about-us-close').click(function() {
$('#about-us-menu').slideUp('fast', function() {});
$('#about-us-close').attr('id', 'about-us');
});
});
您可以通过查看来查看代码和问题 http://pfp.pearsonwebsnorthampton.co.uk - 点击我们,然后再次点击它。
答案 0 :(得分:0)
在我看来,你在这里完成了绑定:
$('#about-us').click(function() {
但是当文档准备就绪时#about-us-ready
不存在,所以第二组绑定:
$('#about-us-close').click(function() {
不能正确发生。
您可以使用事件委派来解决此问题或将事件绑定设置为一个函数,只需让函数检查以查看您的DOM对象当前处于什么状态(打开或关闭)