jQuery click (функция (событие)) гиперссылки не будут работать

0

Я не могу понять, почему гиперссылки не будут работать при использовании события 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 неверно.

Когда я удалю ярлык из него, гиперссылка будет работать, но переход к ней уже не будет.

Будет ли легко исправить?

  • 1
    попробуйте добавить return false; в конце мероприятия.
  • 0
    Спасибо за ответ, не могли бы вы указать, где мне нужно добавить его, я не уверен.
Показать ещё 3 комментария
Теги:
hyperlink

2 ответа

0
Лучший ответ

здесь вы идете: это хорошо работает

http://jsfiddle.net/6g4j2/

$(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;
        }

  });
});
  • 0
    Так что if (trgt != undefined) означает, что у цели нет # в ссылке. Посмотрите ссылку jsfiddle, которую я отправил, она работает нормально.
  • 0
    Спасибо, это работает: D
0

скорее всего, функция из события click не работает здесь

var trgt = parts[1];

для первой ссылки, потому что части будут неопределенными

  • 0
    Я попытался изменить это, но тогда ничего не работает;)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню