Одна проблема заключается в том, что вы пытаетесь использовать Prototype, прежде чем включить его. Переместите тег сценария для js/prototype.js
над тегом сценария для js/drop-o-matic.js
.
Если вы используете отладчик (Chrome Dev Tools, Firebug для Firefox, Script Debugger для IE, ...), он должен сообщить вам об этом. Например, в этом случае инструменты разработчика Chrome показали мне Uncaught TypeError: Object #<an HTMLDocument> has no method 'observe'
, что сразу указало мне правильное направление & mdash; ваша загруженная DOM функция не запускается, потому что вы пытаетесь подключить ее до того, как Prototype добавит document.observe
.
После того, как вы исправили вышесказанное, консоль сказала Uncaught TypeError: Object #<an HTMLDocument> has no method 'ready'
. И это потому, что вы пытаетесь использовать код jQuery без включения jQuery:
$(document).ready(function() {
var loc = window.location.href; // The URL of the page we're looking at
$('aside li a').each(function() {
if (loc.indexOf(this.href) !== -1) { // If the URL contains the href of the anchor
$(this).addClass('selected'); // Mark it as selected
}
});
});
Вы можете использовать jQuery, а также Prototype, если хотите, но если это только для этого фрагмента, я бы вместо этого преобразовал его в код Prototype:
document.observe("dom:loaded", function() {
var loc = window.location.href; // The URL of the page we're looking at
$$('aside li a').each(function(link) {
if (loc.indexOf(link.href) !== -1) { // If the URL contains the href of the anchor
link.addClassName('selected'); // Mark it as selected
}
});
});
Если вы используете код jQuery в другом месте, вам нужно включить jQuery и использовать jQuery.noConflict
, что позволяет Prototype сохранять символ $
(вместо этого вы должны использовать jQuery
где вы хотите использовать функцию jQuery или использовать функцию загрузки jQuery в качестве функции области видимости).