uncaught TypeError: Cannot read property "top" null
Bekam ich ein ziemlich nerviges javascript-Fehler. Die Welt berühmt:
uncaught TypeError: Cannot read property "top" null
Hier ist der code:
$(function() {
var setTitle = function(title, href) {
title = 'Derp: ' + title;
href = href || '';
history.pushState({id: href}, title, href.replace('#', '/'));
document.title = title;
},
scroll = function(url, speed) {
var href = typeof url == 'string' ? url : $(this).attr('href'),
target = $(href),
offset = target.offset(),
title = target.find('h1').text();
if(typeof url == 'number') {
target = [{id:''}];
offset = {top: url};
}
// And move the element
if(offset.top) {
// Set the new URL and title
setTitle(title, href);
// Make sure we're not moving the contact panel
if(target[0].id != 'contact') {
$('html, body').animate({scrollTop: offset.top}, speed);
}
}
return false;
};
// Handle existing URL fragments on load
if(location.pathname.length > 1) {
scroll(location.pathname.replace('/', '#'), 0);
}
$('a#logo').click(function() {
$('html,body').animate({scrollTop: 0});
return false;
});
// Handle internal link clicks
$('a[href^=#]:not(#logo)').click(scroll);
// Close the "Get In Touch" box
var box = $('#contact'),
moveBox = function() {
var closing = $(this).attr('class') == 'close',
amount = closing ? -(box.height() + 20) : 0,
cb = closing ? '' : function() { box.animate({marginTop: -10}, 150); };
box.animate({marginTop: amount}, cb);
};
box.css('margin-top', -(box.height() + 20));
$('#contact a.close, #get-in-touch').click(moveBox);
// Nasty little fix for vertical centering
$('.vertical').each(function() {
$(this).css('margin-top', -($(this).height() / 2));
});
// Work panels
var parent = $('#work'),
panels = parent.children('div');
panels.each(function() {
$(this).css('width', 100 / panels.length + '%');
})
parent.css('width', (panels.length * 100) + '%');
// Bind the keyboards
$(document).keyup(function(e) {
var actions = {
// Left
37: function() {
var prev = panels.filter('.active').prev().not('small');
if(prev.length > 0) {
prev.siblings().removeClass('active');
setTitle(prev.find('h1').text(), prev[0].id);
setTimeout(function() {
prev.addClass('active');
}, 250);
parent.animate({left: '+=100%'}).css('background-color', '#' + prev.attr('data-background'));
}
},
// Right
39: function() {
var next = panels.filter('.active').next();
if(next.length > 0) {
next.siblings().removeClass('active');
setTitle(next.find('h1').text(), next[0].id);
setTimeout(function() {
next.addClass('active');
}, 250);
parent.animate({left: '-=100%'}).css('background-color', '#' + next.attr('data-background'));
}
},
// Down
40: function() {
var w = $(window),
height = w.height() * panels.children('div').length,
h = w.height() + w.scrollTop();
if(h < height) {
scroll(h);
}
},
// Up
38: function() {
var w = $(window);
$('html,body').animate({scrollTop: w.scrollTop() - w.height()});
}
};
// Call a function based on keycode
if(actions[e.which]) {
actions[e.which]();
}
e.preventDefault();
return false;
});
// Fix crazy resize bugs
$(window).resize(function() {
var m = $(this),
h = m.height(),
s = m.scrollTop();
if((h - s) < (h / 2)) {
m.scrollTop(h);
}
//$('html,body').animate({scrollTop: s});
});
// slideshow
var woof = function() {
var slides = $('#molly li'),
active = slides.filter('.active');
if(!active.length) {
active = slides.last();
}
active.addClass('active');
var next = active.next().length ? active.next() : slides.first();
next.css('opacity', 0).addClass('active').animate({opacity: 1}, function() {
active.removeClass('active last-active');
});
};
setInterval(woof, 3000);
// easing
$.easing.swing = function(v,i,s,u,a,l) {
if((i /= a / 2) < 1) {
return u / 2 * (Math.pow(i, 3)) + s;
}
return u / 2 * ((i -= 2) * i * i + 2) + s;
};
// Change the default .animate() time: http://forr.st/~PG0
$.fx.speeds._default = 600;
});
try{Typekit.load()}catch(e){}
Sorry für dieses lange monster, aber ich dachte, es könnte nützlich sein für Sie zu sehen, die ganze Sache. Die Fehlermeldung warning zeigt sich in diesem Teil:
// And move the element
if(offset.top) {
Uncaught TypeError: Cannot read property 'top' von null
Es ist Zeile 23 in den code.
Das ist es. Könnten Sie mir einen Tipp geben, wie dieses problem zu lösen?
Danke!
Also
das ist die volle JS. außer den jquery mini.js -> code.jquery.com/jquery-1.7.2.min.js
Dieser code benötigt definitiv einige die Einbettung von HTML, gegen die es ausgeführt wird. Haben Sie versucht, zu Debuggen, z.B. mit Chrome Entwickler-Tools?
ja. verwendet CDT kann aber nicht herausfinden :/. - URL: pixelpizza.de/hire4/hire vielleicht könnten Sie so freundlich sein und einen Blick über Sie? 🙂 handler.js ist das Skript kaputt
OK, so dass Sie versuchen zu finden, ein HTML-element mit dem Selektor "#hire4/mieten/" (was ist eigentlich eine URL) und schnappen Sie sich den offset in der Seite. Sieht stinkenden...
offset = target.offset()
zurück null
- ich glaube, nur Sie können die Spur der eigentlichen Ursache mit Ihren vollständigen JS-code.das ist die volle JS. außer den jquery mini.js -> code.jquery.com/jquery-1.7.2.min.js
Dieser code benötigt definitiv einige die Einbettung von HTML, gegen die es ausgeführt wird. Haben Sie versucht, zu Debuggen, z.B. mit Chrome Entwickler-Tools?
ja. verwendet CDT kann aber nicht herausfinden :/. - URL: pixelpizza.de/hire4/hire vielleicht könnten Sie so freundlich sein und einen Blick über Sie? 🙂 handler.js ist das Skript kaputt
OK, so dass Sie versuchen zu finden, ein HTML-element mit dem Selektor "#hire4/mieten/" (was ist eigentlich eine URL) und schnappen Sie sich den offset in der Seite. Sieht stinkenden...
InformationsquelleAutor Der Kev | 2012-04-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, das muss etwas zu tun mit
line 2
,target
solltenull
wenn Fehler AuftrittInformationsquelleAutor S.831
Laut jQuery-Quelle
jQuery.fn.offset
gibt nurnull
wenn:ownerDocument
ist falsy (ich weiß nicht, Wann das passieren würde, sorry).Die erste Möglichkeit scheint wahrscheinlicher, so sollten Sie überprüfen, ob
target.length > 0
vor dem Aufruftarget.offset()
und Griff die alternative.InformationsquelleAutor DCoder