2012-07-12 34 views
0

我試圖在jQuery函數中忽略a的空href屬性。這裏的菜單:忽略jQuery中的空href每個

<nav id="nav-works-screen" role="navigation"> 
    <ul id="nav-other-links"> 
     <li class="nav-title">NICHOLAS<br/> AREHART</li><br/> 
     <li><a href="">CV/Bio</a></li> 
     <li><a href="">Contact</a></li> 
     <li><a href="">News</a></li> 
     <li><a href="<?php randLink() ?>">Link???</a></li> 
    </ul> 
    <ul id="nav-works"> 
     <li class="nav-title">WORK</li><br/> 
     <li class="work"><a href="#the-speech">The Speech</a></li> 
     <li class="work"><a href="#forms-derived-from-a-code">Forms Derived from a Code</a></li> 
     <li class="work"><a href="#unauthorized-reproduction">Unauthorized Reproduction</a></li> 
     <li class="work"><a href="">Newport Ads</a></li> 
     <li class="work"><a href="">An Illegally Downloaded Film</a></li> 
     <li class="work"><a href="">Hold on to Your Genre</a></li> 
     <li class="work"><a href="">Autonomy</a></li> 
     <li class="work"><a href="">Ikea Objects</a></li><br/> 
     <li id="nav-arrows"> 
      <div class="nav-arrows"> 
       <a class="nav-arrow-prev" href="">&laquo;</a> 
      &emsp;&emsp; 
       <a class="nav-arrow-next" href="">&#187;</a> 
      </div> 
     </li> 
    </ul> 
</nav> 

錨:

<div id="content" class="clrfx"> 

    <div id="primary" class="clrfx"> 
     <div id="the-speech" class="page odd the-speech"> 
      <div class="page-content"> 
       <h2>The Speech</h2> 
      </div> 
     </div> 

     <div id="forms-derived-from-a-code" class="page even forms-derived-from-a-code"> 
      <div class="page-content"> 
       <h2>Forms Derived from a Code</h2> 
      </div> 
     </div> 

     <div id="unauthorized-reproduction" class="page odd unauthorized-reproduction"> 
      <div class="page-content"> 
       <h2>Unauthorized Reproduction</h2> 
      </div> 
     </div> 

    </div><!-- #primary --> 

</div><!-- #content --> 

,這裏是jQuery的:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#nav-works-screen a').smoothScroll(); 

     $(document).scroll(function(){ 
      $('nav a').each(function(){ 
       var workLink = $(this); 
       var work = workLink.attr('href'); 

       if (work != '') { 

        var workTop = $(work).offset().top; 
        var currentPos = $(window).scrollTop(); 
        var winHeight = $(window).height(); 

        if (currentPos >= workTop) { 
         workLink.css({'background-color':'#38FF4F'}); 
         workLink.parent().siblings().children().css({'background-color':'transparent'}); 
        } 
        else { 
         workLink.css({'background-color':'transparent'}); 
        } 
       } 
      }); 
     }); 
    }); 
</script> 

不幸的是,我不斷收到一個錯誤,無效的財產 '頂' 不能讀。我不明白爲什麼工作變量是空的,如果我明確指出任何空的工作變量應該被忽略。我確信它的東西非常簡單,但是我現在用這個東西一直把我的頭撞在牆上。任何幫助將非常感激。

編輯 - 這就是問題:<li><a href="<?php randLink() ?>">Link???</a></li>我想我的隨機鏈接PHP函數是與jQuery遍歷DOM擰,但我很好奇,爲什麼。

+0

我無法看到任何控件與id =#發言HTML中的語音,你可以發佈,以及? – Adil 2012-07-12 00:18:28

+0

已添加。謝謝。 – 2012-07-12 00:26:14

回答

0

那麼這實際上爲我工作,但我不得不因爲在你的HTML提取物沒有「導航」元素

$('nav a').each(function(){ 

改變選擇到

$('#nav-other-links a').each(function(){ 

。 但你應該把一個

alert(work); 

if語句前面,並檢查什麼「工作」真的是約在空HREF的時刻,當它不是一個空字符串。

+0

標記中實際上有一個nav元素;我已將它添加到我原來的帖子中。但是,我仍然收到空錯誤。我還更改了if語句,以便在它有一個非空的href時提醒我。它按預期返回了4個警報。我猜這個問題存在於if語句之後的某個地方。 – 2012-07-12 00:54:15

0
$(document).scroll(function(){ 
     $('nav a').each(function(){ 
      // if the href evaluates to false then return false 
      if(!$(this).attr('href')){return false;} 
0

您是否嘗試過屬性未選擇?

$('#nav-other-links a[href!=""').each(function() { 
    // 
}); 

此外,托馬斯是正確的關於虛構的NAV選擇器。