У меня есть немного jQuery, который я хотел бы помочь оптимизировать.
Сценарий работает нормально, однако, если у меня есть более одного div, который хочет использовать сценарий, они запутываются.
Вот jQuery
jQuery(document).ready(function() {
jQuery(".anchorLink").anchorAnimate()
});
jQuery.fn.anchorAnimate = function(settings) {
settings = jQuery.extend({
speed : 400
}, settings);
return this.each(function(){
var caller = this
jQuery(caller).click(function (event) {
event.preventDefault()
var locationHref = window.location.href
var elementClick = jQuery(caller).attr("href")
var destination = jQuery(elementClick).offset().top;
jQuery("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination}, settings.speed, function() {
window.location.hash = elementClick
});
return false;
})
})
}
Вот типичный HTML-код:
<div id="container1">
<ul class="Questions">
<li class="anchorLink" href="#myAnchor">
<a class="faq-topic-link anchorLink" href="#myAnchor">
<span class="topic_ questionTitle">FAQ Question</span>
</a>
</li>
</ul>
<ul class="aAnswers">
<li class="li_answers">
<a name="myAnchor" id="myAnchor"></a>
<span class="topic-head" id="topics_">FAQ Question</span>
Lorim Ipsum ...
<div class="back-to-top">
<a href="#faqtop" class="anchorLink">Back To Top</a></div>
<div class="clear"></div>
</li>
</ul>
</div>
Проблема возникает, когда я пытаюсь использовать приведенный выше HTML-код в другом месте на странице ... как это:
<div id="container2">
<ul class="Questions">
<li class="anchorLink" href="#myAnchor">
<a class="faq-topic-link anchorLink" href="#myAnchor">
<span class="topic_ questionTitle">FAQ Question</span>
</a>
</li>
</ul>
<ul class="aAnswers">
<li class="li_answers">
<a name="myAnchor" id="myAnchor"></a>
<span class="topic-head" id="topics_">FAQ Question</span>
Lorim Ipsum ...
<div class="back-to-top">
<a href="#faqtop" class="anchorLink">Back To Top</a></div>
<div class="clear"></div>
</li>
</ul>
</div>
Я думал, что делал это правильно, используя «this», чтобы скрипт выглядел для анимации «this» контейнера.