对 jquery 效果应用自定义操作
Applying custom action on jquery effect
我正在使用jquery缓动效果,现在我有以下代码
$(document).ready(function() {
$.easing.def = "easeOutBounce";
$('#myDiv ul li.submenu a.title').click(function(e) {
var dropDown = $(this).parent().next();
$('.submenu_items').not(dropDown).slideUp('slow');
dropDown.stop(false, true).slideToggle('slow');
e.preventDefault();
});
});
使用此 js 代码,#myDiv
处无序列表中的所有列表项都将解开包装。我试图实现的是从我的控制器发送一些表示div 标识符的字符串,因此#myDiv
应该是从控制器发送的动态值,而不是。在该div 下,所有项目都应取消删除,所有其他项目都应隐藏(包装(。
- 迪万
- 列表项
- 列表项二
- 二区
- 三区
更新的问题
Dom 结构如下
<!-- menu one -->
<ul>
<li id="first_menu" class="submenu">
<a href="#" class="title">FIRST MENU</a>
</li>
<li class="submenu_items" style="display: list-item;">
<ul class="nomargin">
<li><a href="link1">LINK ONE</a>
<ul>
<li><a href="link2">LINK TWO</a></li>
</ul>
</li>
</ul>
</ul>
<!-- / menu one -->
<!-- menu two -->
<ul>
<li id="second_menu" class="submenu">
<a href="#" class="title">SECOND MENU</a>
</li>
<li class="submenu_items" style="display: list-item;">
<ul class="nomargin">
<li><a href="link3">LINK THREE</a>
<ul>
<li><a href="link4">LINK FOUR</a></li>
</ul>
</li>
</ul>
</ul>
<!-- / menu two -->
我希望在页面加载时解开第一个菜单中的所有列表项,以及第二个菜单中的项目保持包装(这应该等待点击事件,但这不是现在的问题(。
这是你所追求的效果吗:
吉斯菲德尔
$(document).ready(function() {
$.easing.def = "easeOutBounce";
var submenus = $( '.submenu_items' );
$( 'div.menu ul li.submenu' ).each( function(){
var submenu = $( this ),
dropdown = submenu.next(),
items = submenus.not( dropdown );
$( 'a.title', submenu ).click( function(e){
items.slideUp( 'slow' );
dropdown.stop(false, true).slideToggle('slow');
e.preventDefault();
} );
});
});
当您单击标题时,其他div 中的菜单项将向上滑动并隐藏,当前子菜单将切换其子菜单。
编辑:
一个更有效的版本是:
吉斯菲德尔
$(document).ready(function() {
$.easing.def = "easeOutBounce";
var current_submenu = null;
$( 'div.menu ul li.submenu' ).each( function(){
var dropdown = $( this ).next();
$( 'a.title', this ).click( function(e){
if ( current_submenu !== null && current_submenu != dropdown )
{
current_submenu.slideUp( 'slow' );
}
current_submenu = dropdown;
dropdown.stop(false, true).slideToggle('slow');
e.preventDefault();
} );
});
});
编辑 2:
吉斯菲德尔
dynamic_value_from_controller = 1;
$(document).ready(function() {
$.easing.def = "easeOutBounce";
var menus = $( 'div.menu ul li.submenu' ),
current_submenu = null;
menus.next().hide();
menus.each( function(i){
var dropdown = $( this ).next(),
title = $( 'a.title', this );
title.click( function(e){
if ( current_submenu !== null && current_submenu != dropdown )
{
current_submenu.slideUp( 'slow' );
}
current_submenu = dropdown;
dropdown.stop(false, true).slideToggle('slow');
e.preventDefault();
} );
if ( i == dynamic_value_from_controller )
title.click();
});
});
编辑 3
在上一次编辑中添加了一个dynamic_value_from_controller
变量,以控制最初打开哪个菜单。
吉斯菲德尔
相关文章:
- 如何将原型用于自定义方法和对象操作
- 根据当前用户启用“自定义操作”按钮
- 对 jquery 效果应用自定义操作
- 自定义主干.模型操作不起作用
- 操作无法使用自定义控件上的呈现属性集,该控件包含操作按钮
- 自定义渲染器未应用于表渲染手动可操作
- 将自定义 CSS 类添加到由 kendoEditor 的工具栏操作触发的弹出窗口中
- asp.net Web API 405 方法不允许、发布、自定义操作
- 通用分析中用于设置自定义维度的操作顺序
- Facebook opengraph -- 自定义对象和操作 -- 用户名:action 至少需要存在一个故事
- 使用Shopify代码操作自定义文本框时出现问题
- 纯Javascript-用于定时操作的自定义js-css选择器
- PDF中的自定义操作链接.编写Javascript以更改单击时链接的外观
- 是否有将自定义操作绑定到的最佳实践
- MVC C#中的自定义操作结果返回特定视图
- Javascript自定义操作的功能键按下
- 自定义操作功能
- 在ng-repeat完成呈现元素后执行自定义操作
- 部署时自定义操作url错误:部署步骤中发生错误
- SOAP请求中缺少激活全局自定义操作所需的输入字段