Javascript 使用.append构建复杂菜单
为了构建一个可以通过隐藏/取消隐藏菜单项进行切换的菜单块,我使用了.append html。 代码思想是这样的:Javascript 使用.append构建复杂菜单,javascript,jquery,append,Javascript,Jquery,Append,为了构建一个可以通过隐藏/取消隐藏菜单项进行切换的菜单块,我使用了.append html。 代码思想是这样的: navigat += '<h3 class="infoH3"> <a id="' + menuID +'"' + ' href="javascript:slideMenu(\'' + menuSlider + '\');">' + menuName + '</
navigat += '<h3 class="infoH3"> <a id="' + menuID +'"'
+ ' href="javascript:slideMenu(\'' + menuSlider + '\');">'
+ menuName + '</a></h3>';
navigat += '<div id="' + menuSlider + '" style="display:none">';
navigat += ' <ul>';
navigat += ' <li>aMenu1</li>'
navigat += ' <li>aMenu2</li>'
navigat += ' <li>aMenu3</li>'
navigat += ' </ul>';
navigat += '<!-- menuName Slider --></div>';
$("#someElement").append (navigat);
这很好。。到目前为止
但关键是:
我使用JS读取所需的菜单项,例如“aMenu1”以及文件中的标题和/或链接信息,以构建所有这些,例如,“aMenu1”由一个复合体组成,$someElement.appendsomeString用于添加“someElement”
目前,我逐行构建这些html元素。也可以。。只要结果字符串具有开始和结束标记,例如aMenu2
从上面张贴的代码中可以看出,有一行代码。
附加-AFAIS-the.append是自动的????添加关闭语句的。
这打破了我对整个概念的理解!菜单部分不包括在“菜单滑动器”中
QQ:如何更改它-不必这样您可以更改您的方法来使用文档片段样式创建,如下所示:
var someElement = $("#someElement");
$('<h3 class="infoH3"></h3>').append($('<a />',
{ 'id': menuID,
'href': '#',
click: function() { slideMenu(menuSlider); }
})
).appendTo(someElement);
var div = $('<div />', { 'id': menuSlider, css: {display: 'none'} });
$('<ul />').append('<li>aMenu1</li>')
.append('<li>aMenu2</li>')
.append('<li>aMenu3</li>')
.appendTo(div);
div.appendTo(someElement);
这是一种非常不同的方法,首先我们缓存$someElement对象,这样我们就不会重复搜索它。然后我们将创建一个对象,将链接放入其中,然后插入,然后将整个内容附加到某个元素。在最后一个例子中,它使用相同的方法创建,设置它的属性,然后创建菜单并将其附加到内部…然后将整个div也附加到someElement
顺便说一句,我不知道.slideMenu是如何工作的,但是通过$this.parent.next或给div一个类工作的事件处理程序也可以工作,并且您不需要传递slider参数的函数。这似乎是关于JavaScript和jQuery的。相应地标记;如果我错了,请修复。你是说即使你的代码中没有结束符,它也会自动添加结束符吗?这可能不是问题所在,但在li项后缺少分号