jQuery и внешние ссылки

(Ответов: 3, Просмотров: 1150)
  1. Сайты на WordPress Аватар для ADvi
    • Регистрация: 22.01.2011
    • Сообщений: 490
    • Репутация: 89
    • Webmoney BL: ?
    Добрый вечер. Требуется помощь
    Есть проект одно-страничного сайта. Есть код по переходу между страницами в виде слайдинга. Все ссылки вида a href в коде обрабатываются как внутренние, т.е. сайт просто прокручивается на нужное место (как я понимаю, для того, чтобы не рефрешить страницу). Необходимо, чтобы часть ссылок (2 с главной) открывались как внешние (в новой вкладке или окне). Они то открываются, но только с помощью средней кнопки мыши.
    Код ниже:
    PHP код:
       // Bind a callback that executes when document.location.hash changes.
        
    $(window).bind("hashchange", function (e) {

            
    url = $.bbq.getState("p");
            
    url2 url.split('/');

            if ($(
    '#pageSlider').find('li.visible').attr('id') == url2[0]) {
                
    goToSubPage("#" url2[0], url2[1], $subPageSlider_speed);
                return 
    false;
            }

            
    goToPage("#" url2[0], url2[1], $pageSlider_speed);

        });

        
    // Since the event is only triggered when the hash changes, we need
        // to trigger the event now, to handle the hash the page may have
        // loaded with.

        
    currentURL = $.bbq.getState("p");
        if (
    currentURL) {
            
    currentURL2 currentURL.split('/');
            
    goToPage("#" currentURL2[0], currentURL2[1], 0);
        } else {

        }


    });


    /* Document is ready */
    $(function () {


        $(
    'a[href=#]').attr('href''javascript:void(0)');

        
    /* Pagination */
        
    $('.testimonials').paginate({
            
    limit2,
            
    content'li'
        
    });

        $(
    'a[href=#]').attr('href''javascript:void(0)');


           $(
    'a').live("click", function (event) {


            if ($(
    this).attr('href')) {
                
    menuHref = $(this).attr('href').substr(1);
                if (
    menuHref) {
                    
    menuHref2 menuHref.split('/');
                }


                if ($(
    '#pageSlider>ul>li#' menuHref2[0]).length != 0) {

                    
    // Push this URL "state" onto the history hash.
                    
    $.bbq.pushState({
                        
    pmenuHref
                    
    });

                    
    // Prevent the default click behavior.
                    
    return false;
                }


                if ($(
    '.subPages>li#' menuHref2[0]).length != 0) {
                    var 
    plb location.hash.split('='),
                        
    plb2 plb[1].split('/');

                    
    // Push this URL "state" onto the history hash.
                    
    $.bbq.pushState({
                        
    pplb2[0] + "/" menuHref2[0]
                    });

                    
    // Prevent the default click behavior.
                    
    return false;
                }

                
    event.preventDefault();
            }
        });

        if ($(
    '#portfolio').length != 0) {
            var 
    $pane = $('#portfolio .subPages>li').jScrollPane({
                
    showArrowsfalse
            
    }).data('jsp');
        } else {
            var 
    $pane '';
        }

        if ($(
    '#blog').length != 0) {
            var 
    $pane2 = $('#blog .subPages>li').jScrollPane({
                
    showArrowsfalse
            
    }).data('jsp');
        } else {
            var 
    $pane2 '';
        }


        }); 
    • 0
  2. Опытный Аватар для WebAction
    • Регистрация: 18.11.2009
    • Сообщений: 266
    • Репутация: 135
    Попробуйте добавить после
    PHP код:
    $('a[href=#]').attr('href''javascript:void(0)'); 
    Вот такое:
    PHP код:
    $('a[href=#]').attr('target''_blank'); 
    • 1

    Спасибо сказали:

    ADvi(11.03.2012),
  3. Сайты на WordPress Аватар для ADvi
    • Регистрация: 22.01.2011
    • Сообщений: 490
    • Репутация: 89
    • Webmoney BL: ?
    Спасибо за помощь. Код не сработал.
    2 часа гугления - и вот оно решение
    PHP код:
    $('a[@href^="http://"]').each(function() {
       var 
    = new RegExp('/' window.location.host '/');
       }
    ); 

    UPD
    Поспешил с выводами.
    Код вставлял перед
    PHP код:
    if ($('.subPages>li#' menuHref2[0]).length != 0) { 
    Но тогда не срабатывает этот код и нижеследующие
    Последний раз редактировалось ADvi; 11.03.2012 в 05:28. Причина: тупанул
    • 0
  4. Дипломник
    • Регистрация: 06.06.2011
    • Сообщений: 105
    • Репутация: 11
    поставить ссылкам которые должны отрабатываться как внутренние особый класс, к примеру "inhref"
    и вот тут
    PHP код:
    $('a').live("click", function (event) { 
    добавить класс
    PHP код:
    $('a.inhref').live("click", function (event) { 
    тогда по идее должны преобразовываться только нужные ссылки


    * взглянуть бы на пример, возможно решение придет другое...
    • 1

    Спасибо сказали:

    ADvi(12.03.2012),

Похожие темы

Темы Раздел Ответов Последний пост
Как удалить все внешние ссылки с контента Wordpress?
WordPress 14 24.10.2019 17:52
Внешние ссылки в ноуфолов и ноундекс вредны?
Вопросы от новичков 6 23.02.2012 02:19
Яндекс.Вебмастер и внешние ссылки
Общие вопросы поисковой оптимизации 7 09.11.2011 11:27
Внешние ссылки для продвижения по НЧ
Вопросы от новичков 12 07.06.2011 18:31

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры