вторник, 07 сентября 2010
Доброго времени суток!
Пытаюсь применить на своем сайте
следующую технику (Image Scroller)
Вроде все сделал как в demo, сравнил код раз 50, но никак не могу понять почему плагин отказывается работать:
JS:
читать дальше HTML Code:
<sсript type="text/javasсript" src="/uploads/turizm/images/jquery-1.3.2.min.js"></sсriрt>
<sсript type="text/javasсript">
$(function() ).width($(".wrapper").length * 170).height(170).appendTo("div#viewer");
//add images to container
$(".wrapper").each(function() );
//work out duration of anim based on number of images (1 second for each image)
var duration = $(".wrapper").length * 1000;
//store speed for later (distance / time)
var speed = (parseInt($("div#container").width()) + parseInt($("div#viewer").width())) / duration;
//set direction
var direction = "rtl";
//set initial position and class based on direction
(direction == "rtl") ? $("div#container").css("left", $("div#viewer").width()).addClass("rtl") : $("div#container").css("left", 0 - $("div#container").width()).addClass("ltr") ;
//animator function
var animator = function(el, time, dir) , time, "linear", function() );
//restart animation
animator($(this), duration, "rtl");
//hide controls if visible
($("div#controls").length > 0) ? $("div#controls").slideUp("slow").remove() : null ;
});
} else , time, "linear", function() );
//restart animation
animator($(this), duration, "ltr");
//hide controls if visible
($("div#controls").length > 0) ? $("div#controls").slideUp("slow").remove() : null ;
});
}
}
//start anim
animator($("div#container"), duration, direction);
//pause on mouseover
$("a.wrapper").live("mouseover", function() ).slideDown("slow") : null ;
($("a#rtl").length == 0) ? $("<a>").attr().appendTo("#controls") : null ;
($("a#ltr").length == 0) ? $("<a>").attr().appendTo("#controls") : null ;
//variable to hold trigger element
var title = $(this).attr("title");
//add p if doesn't exist, update it if it does
($("p#title").length == 0) ? $("<p>").attr("id", "title").text(title).appendTo("div#controls") : $("p#title").text(title) ;
});
//restart on mouseout
$("a.wrapper").live("mouseout", function(e) );
//handler for ltr button
$("#ltr").live("click", function() );
//handler for rtl button
$("#rtl").live("click", function() );
});
</sсriрt>
HTML:
читать дальше HTML Code:
<div id="outerContainer">
<div id="imageScroller">
<div id="viewer" class="js-disabled">
<a class="wrapper" href="#" title="NYC"><img class="logo" id="NYC" src="uploads/turizm/images/nyc.jpg" alt="NYC"></a>
<a class="wrapper" href="#" title="Sydney"><img class="logo" id="Sydney" src="uploads/turizm/images/sydney.jpg" alt="Sydney"></a>
<a class="wrapper" href="#" title="Tokyo"><img class="logo" id="Tokyo" src="uploads/turizm/images/tokyo.jpg" alt="jQuery"></a>
<a class="wrapper" href="#" title="LDN"><img class="logo" id="LDN" src="uploads/turizm/images/england.jpg" alt="LDN"></a>
<a class="wrapper" href="#" title="Paris"><img class="logo" id="Paris" src="uploads/turizm/images/france.jpg" alt="Paris"></a>
</div>
</div>
</div>
Ссылка:
turizmxxx.ru/
Подскажите пожалуйста, что делаю не так.
Спасибо
Первое, что мне выдали при загрузке turizmxxx.ru:
Firefox:
Opera:
Я с jquery никогда не работал, и не очень хорошо знаю, что делает функция $(), но в данном случае синтаксический анализатор в указанном месте ожидает открывающей фигурной скобки, т.к. конструкция "function(){...}" в ECMAScript'е (а значит и в яваскрипте) является объявлением анонимной функции и используется, например, в виде:
var f = function(){return 'someValue';};
Т.к. слово "function" является зарезервированным для ECMAScript-дочерних языков, то я сомневаюсь, что интерпретатор яваскрипт дал бы объявить функцию с таким именем. Следовательно, конструкция "$(function() )" не может являться вязовом функции $() с аргументом, являющимся результатом вызова функции function().
Я точно не знаю, в каких случаях $() должна вызываться с аргументом, являющимся экземпляром функции, не принимающей аргументов. Но если это именно тот случай, то следовало бы написать "$(function(){})".
Хотя в исходном, взятом Вами за образец, варианте, изначально функция $() вызывается с аргументом:
Видимо, что-то Вы делаете не совсем то, что надо бы...
Ага, ясно в чем дело, CMS made simple, на которой держиться сайт модифицирует шаблон при сохранении. Сохранил ява скрипт в отдельный файл, теперь все работает.
Спасибо за разъяснения