移动菜单切换问题(onclick 仅适用于外部容器,不适用于按钮)
Mobile menu toggle issue (onclick only works on outer container, not button)
>我有以下代码:http://jsfiddle.net/GtC6x/10/(动画动态高度)
现在,您可以单击按钮和整个红色区域进行切换。我只希望紫色区域是使用此标记结构切换的区域。
$('.nav-container').on('click', function() {
应该是
$('.nav-toggle').on('click', function() {
但随后它就坏了。我需要在代码中更改什么?作为一个js新手,我已经盯着这段代码一段时间了,但未能看到切换开关必须位于外部容器上的位置/原因才能工作。
$('.nav-container').on('click', function() {
slide($('.nav-wrap .nav', this));
});
function slide(content) {
var wrapper = content.parent();
var contentHeight = content.outerHeight(true);
var wrapperHeight = wrapper.height();
wrapper.toggleClass('expand');
if (wrapper.hasClass('expand')) {
setTimeout(function() {
wrapper.addClass('transition').css('height', contentHeight);
}, 10);
}
else {
setTimeout(function() {
wrapper.css('height', wrapperHeight);
setTimeout(function() {
wrapper.addClass('transition').css('height', 0);
}, 10);
}, 10);
}
wrapper.one('transitionEnd webkitTransitionEnd transitionend oTransitionEnd msTransitionEnd', function() {
if(wrapper.hasClass('open')) {
wrapper.removeClass('transition').css('height', 'auto');
}
});
}
当您将
函数更改为.nav-toggle
时,您的this
不再针对container
,而是您nav-toggle
获得我们获取nav-toggle
父级所需的相同功能,即nav-container
。
$('.nav-toggle').on('click', function() {
slide($('.nav-wrap .nav', $(this).parent()));
});
这是小提琴
http://jsfiddle.net/GtC6x/12/
相关文章:
- AddEventListener适用于浏览器,但不适用于Android
- 查找仅适用于原始图像的图像放大算法的名称
- 如何在category.php中执行jquery,这应该适用于类别wordpress中的每个帖子
- Web编程,简单但适用于机器人项目
- JavaScript不适用于internet explorer和Firefox,但适用于谷歌
- Jquery事件处理程序仅适用于匿名函数
- jQuery调整大小函数只适用于窗口
- 火灾在卸载前确认警报仅适用于外部站点
- EmberJS-适用于各种模型的适配器动态名称空间
- Facebook共享链接适用于用户,但不适用于粉丝页面管理员
- jQuery-适用于移动设备的多级菜单
- 循环中的切换脚本只适用于第一次迭代
- 为什么setTimeout适用于无休止的递归调用
- 我未保存的更改指令需要适用于具有不同名称的所有表单
- 适用于多种浏览器的Selenium-需要能够执行javascript的webDriver
- 如何使鼠标事件仅适用于外部DIV
- 更改某些CSS不再适用于外部Javascript文件
- 移动菜单切换问题(onclick 仅适用于外部容器,不适用于按钮)
- Java 脚本不适用于外部工作表,但它适用于主 html 文件.为什么会这样,我该如何解决
- 平滑滚动仅适用于同一页面,而不适用于外部链接