Я не могу понять, почему гиперссылки не будут работать при использовании события jQuery click.
Я бы хотел, чтобы 1 кнопка работала как ссылка, а другая - как переход на текущую страницу.
div class="shortcat">
<a href="test.html"><i class="icon-thumbs-up"></i>Test Now</a>
<a href="#Learnmore"><i class="icon-picture"></i>Learn More</a>
</div>
//--------- jQuery ---------------//
jQuery(window).load(function() {
jQuery("#loaderInner").fadeOut();
jQuery("#loader").delay(400).fadeOut("slow");
$('.teaserTitle ').stop().animate({marginTop :'330px', opacity:"1"}, 1000, 'easeOutQuint');
$('.shortcat a ').stop().animate({marginTop :'65px', opacity:"1"}, 600, 'easeOutQuint');
});
$(document).ready(function(){
$("#mainNav ul a, .logo a, .shortcat a, .notBtn a").click(function(event){
event.preventDefault();
var full_url = this.href;
var parts = full_url.split("#");
var trgt = parts[1];
var target_offset = $("#"+trgt).offset();
var target_top = target_offset.top;
$('html,body').animate({scrollTop:target_top -80}, 800);
});
//-------------Highlight the current section in the navigation bar------------//
var sections = $("section");
var navigation_links = $("#mainNav a");
sections.waypoint({
handler: function(event, direction) {
var active_section;
active_section = $(this);
if (direction === "up") active_section = active_section.prev();
var active_link = $('#mainNav a[href="#' + active_section.attr("id") + '"]');
navigation_links.removeClass("active");
active_link.addClass("active");
},
offset: '35%'
});
Первая часть - это HTML, вторая часть - мой script.js
Я думаю, что событие функции click неверно.
Когда я удалю ярлык из него, гиперссылка будет работать, но переход к ней уже не будет.
Будет ли легко исправить?
здесь вы идете: это хорошо работает
$(document).ready(function(){
$("#mainNav ul a, .logo a, .shortcat a, .notBtn a").click(function(event){
var full_url = this.href;
var parts = full_url.split("#");
var trgt = parts[1];
if (trgt != undefined) {
event.preventDefault();
var target_offset = $("#"+trgt).offset();
var target_top = target_offset.top;
$('html,body').animate({scrollTop:target_top -80}, 800);
return false;
}
});
});
if (trgt != undefined)
означает, что у цели нет # в ссылке. Посмотрите ссылку jsfiddle, которую я отправил, она работает нормально.
скорее всего, функция из события click не работает здесь
var trgt = parts[1];
для первой ссылки, потому что части будут неопределенными
return false;
в конце мероприятия.