我想我会开始
解释:
我目前正在构建一个用 jQuery 编写的站点,我正在使用多种技术,允许站点像 Ajax 对象一样在普通类中返回函数而不是单例,但我在页面的其他区域也有基于单例的类通过 Ajax 等异步加载...
一开始,我调用了一个自制函数,它是一个函数链,每个函数都附加到在我的单例页面类构造内部和外部声明的其他函数、类和变量(但仍然在同一个文档|窗口上)。“页面是类的实际名称”..等等
$(窗口).load(); 我打电话 Page.SetupPage();
- 使用 md5 加密数据加载一些 Cookie (WORKS)
- 通过 Ajax 加载站点菜单栏,其中包含:“从数据库获取数据的站点菜单”、“搜索面板(jQuery 自动完成)下拉菜单”、“用户面板和购物车 HTML 下拉菜单” <-- (问题就在这里),然后使用 jQuery 智能菜单插件将其转换为智能菜单元素。
- 在第一步中设置属性的 Div 容器中加载页面正文 (WORKS)
问题:
如果我试图访问 Smartmenu 格式化元素内的 MegaMenu HtmlDropDown Div 中的现有 Div,我将无法在该下拉菜单中构建更多元素,因为我在页面开头调用 userPanel,这也是我的自动用户识别遇到了同样的问题,除非我使用 'itemActivate' a#mydiv 调用 API,插件将任何其他打开的大型菜单 CSS 显示属性设置为无
所以: 我目前还包括第二个 js 脚本,它有一个名为 ShoppingCart 的单例类,它有一个名为 ShoppingCart() 的函数...如果我在 $(window).load() 上调用它,我会得到 json 响应对象和可以将其填充到数组中...但除非我没有将 shoppingCart DropDown UL Tag 的 css 属性设置为“display”->“block”,否则我无法访问 smartmenu html 下拉菜单 megamenu 中的 div 并附加项目到那个 div 以及更多:我不能在我试图访问的巨型菜单 HTML 下拉 div 中的追加末尾调用 jScrollPane 插件,因为我使用另一个焦点在另一个菜单按钮上以确保一切已按原样加载!
有趣的事:
$('#main-menu').smartmenus('itemActivate', $('a#shoppingPanel')); $('#ShoppingCartDiv').css({ 'min-width' : 300, 'height' : 200 }).attr({ 'class' : 'scroll-pane' }); $('#ShoppingCartDiv .jspContainer').css({ 'min-width' : 300, 'height' : 200 }); $('#ShoppingCartDiv .jspPane').css({ 'min-width' : 300, 'height' : cartItems.length*64 }); $('.scroll-pane').jScrollPane(); $('#main-menu').smartmenus('enable', $('a#shoppingPanel'));
如果我在“setShopingCartItems”函数的每个附加函数中添加这些行,然后调用 jScrollPane 函数,它可以工作......但是当我更改到另一个包含滚动窗格元素的区域时,它会破坏滚动购物车区域中的窗格...
您对如何在不将父项的显示设置为阻止的情况下附加和样式元素有任何建议吗?或者我如何以更清洁的方式最好地实现这个目标?
感谢所有答案!提前致谢!
*编辑* 好的,我已经使用显示和不透明度属性设置显示来阻止和不透明度为 0...在我进行更改后,我将它们恢复为无显示和不透明度为 1...