2012-01-26 8 views
2

私はWordPressテーマを構築しており、AJAXで投稿とページを読み込みたいと考えています。私はそれを下のスニペットで整理しましたが、今はロゴをクリックしたときに機能を抑制するだけで、自宅のURLにリンクする必要があります。だから、ロゴをクリックすると、その機能を使うのではなく、通常のリロードが強制されます。例えばJavaScript関数を抑制する方法。 hasClass?

「if hasClass(logo)then default」を使用すると何かがあると思います...はい、私はJavaScriptを初めて使っていますが、私はたくさんの検索をしていますので、方向が高く評価されます。ありがとう!

スニペット:

 
    $(".home li.home").removeClass("home").addClass("current_page_item"); 

    var $wrapperAjax = $("#wrapper-ajax"), 
     URL = '', 
     siteURL = "http://" + top.location.host.toString(), 
     $internalLinks = $("a[href^='"+siteURL+"']"), 
     hash = window.location.hash, 
     $ajaxSpinner = $("#ajax-loader"), 
     $el, $allLinks = $("a"); 

    function hashizeLinks() { 
     $("a[href^='"+siteURL+"']").each(function() { 
      $el = $(this); 

      if ($.browser.msie) { 
       $el.attr("href", "#/" + this.pathname) 
       .attr("rel", "internal"); 
      } else { 
       $el.attr("href", "#" + this.pathname) 
       .attr("rel", "internal"); 
      } 
     }); 
    }; 

    hashizeLinks(); 

    $("a[rel='internal']").live("click", function() { 
     $ajaxSpinner.fadeIn(); 
     $wrapperAjax.animate({ opacity: "0.1" }); 
     $el = $(this); 
     $(".current_page_item").removeClass("current_page_item"); 
     $allLinks.removeClass("current_link"); 
     URL = $el.attr("href").substring(1); 
     URL = URL + " .entry"; 
     $wrapperAjax.load(URL, function() { 
      $el.addClass("current_link").parent().addClass("current_page_item"); 
      $ajaxSpinner.fadeOut(); 
      $wrapperAjax.animate({ opacity: "1" }); 
      hashizeLinks(); 
     }); 
    }); 

    $("#searchform").submit(function(e) { 
     $ajaxSpinner.fadeIn(); 
     $wrapperAjax.animate({ opacity: "0.1" }); 
     $el = $(this); 
     $(".current_page_item").removeClass("current_page_item"); 
     $allLinks.removeClass("current_link"); 
     URL = "/?s=" + $("#s").val() + " .entry"; 
     $wrapperAjax.load(URL, function() { 
      $ajaxSpinner.fadeOut(); 
      $wrapperAjax.animate({ opacity: "1" }); 
      hashizeLinks(); 
     }); 
     e.preventDefault(); 
    }); 

    if ((hash) && (hash != "#/")) { 
     $("a[href*='"+hash+"']").trigger("click"); 
    } 

答えて

0

それはあなたが関数の先頭でこれを追加することができ.logoクラスがある場合:

if ($(this).hasClass('logo')) return true; 

simple exampleを参照してください。私はあなたがこの行からスクリプトを意味推測している

+0

ありがとうございました! 私はそれを試みましたが、運がありません。申し訳ありません –

+0

機能の開始時に追加してもよろしいですか? – PeeHaa

+0

はい、残念ながら –

0

:その場合は$("a[rel='internal']")

を、$("a[rel='internal']").not('.logo')はトリックを行う必要があります。

コード全体を読む必要があります。 $("a[href^='"+siteURL+"']")$("a[href^='"+siteURL+"']").not('.logo')と交換してください。

+0

速い返信ありがとう! 私はそれを試みましたが、うまくいかないようです。クリックされたリンクは何もしません。 –

+0

それはまだ同じです。ごめんなさい –

関連する問題