Codrops JavaScript overlay, undefined不是一个函数错误
Codrops JavaScript overlay, undefined is not a function error
我想使用tut表单Codrops为我的投资组合制作覆盖。当点击缩略图时,项目覆盖应该打开。这里是tut/markup/javascript: http://tympanus.net/codrops/2014/02/06/fullscreen-overlay-effects/(我使用示例7,'Content Push')
但问题是,'trigger-overlay'是一个id,而不是一个类,因为在tut的例子中只使用了一个按钮。我有多个缩略图,所以我改变了var triggerBttn从'getElementById'到'getElementsByClassName'
(function() {
var container = document.querySelector( 'div.pagewrapper' ),
triggerBttn = document.getElementsByClassName( 'trigger-overlay' ),
overlay = document.querySelector( 'div.overlay' ),
closeBttn = overlay.querySelector( 'button.overlay-close' );
transEndEventNames = {
'WebkitTransition': 'webkitTransitionEnd',
'MozTransition': 'transitionend',
'OTransition': 'oTransitionEnd',
'msTransition': 'MSTransitionEnd',
'transition': 'transitionend'
},
transEndEventName = transEndEventNames[ Modernizr.prefixed( 'transition' ) ],
support = { transitions : Modernizr.csstransitions };
function toggleOverlay() {
if( classie.has( overlay, 'open' ) ) {
classie.remove( overlay, 'open' );
classie.remove( container, 'overlay-open' );
classie.add( overlay, 'close' );
var onEndTransitionFn = function( ev ) {
if( support.transitions ) {
if( ev.propertyName !== 'visibility' ) return;
this.removeEventListener( transEndEventName, onEndTransitionFn );
}
classie.remove( overlay, 'close' );
};
if( support.transitions ) {
overlay.addEventListener( transEndEventName, onEndTransitionFn );
}
else {
onEndTransitionFn();
}
}
else if( !classie.has( overlay, 'close' ) ) {
classie.add( overlay, 'open' );
classie.add( container, 'overlay-open' );
}
}
triggerBttn.addEventListener( 'click', toggleOverlay );
closeBttn.addEventListener( 'click', toggleOverlay );
})();
代码依赖于class .js
但是现在我得到了错误
Uncaught TypeError: undefined is not a function
on line:
triggerBttn.addEventListener( 'click', toggleOverlay );
我在这里做错了什么?
我发现简单的问题是,他们没有定义"closeBttn"之后的变量的其余部分,这段代码块变量的其余部分。
错closeBttn = overlay.querySelector( 'button.overlay-close' );
应该是
closeBttn = overlay.querySelector( 'button.overlay-close' ),
所以最后的代码是
var triggerBttn = document.getElementById( 'trigger-navbar' ),
navbar = document.querySelector( 'section.navbar' ),
closeBttn = navbar.querySelector( 'a.navbar-close' ),
navClick = navbar.querySelector( 'section.navbar nav ul li a' ),
transEndEventNames = {
'WebkitTransition': 'webkitTransitionEnd',
'MozTransition': 'transitionend',
'OTransition': 'oTransitionEnd',
'msTransition': 'MSTransitionEnd',
'transition': 'transitionend'
},
transEndEventName = transEndEventNames[ Modernizr.prefixed( 'transition' ) ],
support = { transitions : Modernizr.csstransitions };
function toggleOverlay() {
if( classie.has( navbar, 'open' ) ) {
classie.remove( navbar, 'open' );
classie.add( navbar, 'close' );
var onEndTransitionFn = function( ev ) {
if( support.transitions ) {
if( ev.propertyName !== 'visibility' ) return;
this.removeEventListener( transEndEventName, onEndTransitionFn );
}
classie.remove( navbar, 'close' );
};
if( support.transitions ) {
navbar.addEventListener( transEndEventName, onEndTransitionFn );
}
else {
onEndTransitionFn();
}
}
else if( !classie.has( navbar, 'close' ) ) {
classie.add( navbar, 'open' );
}
}
相关文章:
- 我怎么能把一个错误当作未捕获的错误来记录呢
- 在这个使用hasOwnProperty的对象扩展程序中有一个错误,I'我不确定那个bug是什么,也不确定这个扩展
- javascript window.location在检查firebug时给了我一个错误的url路径
- new SharedWorker(“whatever.js”)返回一个错误
- JSON.parse给了我一个错误,但JSONLint说它'是一个有效的json
- 有人能向我解释一下我犯的一个错误吗
- Jasmine:测试setTimeout函数会抛出一个错误
- JavaScript中的一个错误
- 为什么jqPlot显示了一个错误的饼图,其中包含通过AJAX检索的数据
- Webrtc和socket.io:createanswer()总是有一个错误.为什么?我的代码连接了两个对等体,但其中只
- 使用 jQuery 构建一个元素会给我一个错误
- Chai 期望 [函数] 抛出一个(错误)未通过测试(使用 Node)
- 在我的 jquery 函数中得到一个错误
- Addeventlistener 已转换为 IE.也许是另一个错误
- 我有一个错误,由于某种原因,号码被更改了,而不是名字
- 我无法建立离子机器人项目..它给了我一个错误:生成cmd enont
- JQueryAJAX调用:304 respose产生一个错误
- 继续得到一个错误,即某个东西不是函数,但找不到原因
- jQuerylib会导致一个错误,直到刷新为止
- HTML图像加载触发一个错误