2013-05-15 66 views
0

所以我爲我的網站設置了一個滾動代碼。jquery獲得href值並將其用作變量

<section class="fpage"> 
    <a class="next" href="#view">test</a> 
</section> 

<section class="cpage">test</section> 

在jquery中我有。

$(document).ready(function() { 
    $('.next').click(function (event) { 
     var cpage = $(this).find('a').attr('href'); 
     var fpage = $(this).closest('section'); 
     event.preventDefault(); 

     fpage.addClass('anim').delay(500).queue(function(next){ 
      $(this).removeClass().addClass('cpage'); 
      next(); 
      cpage.removeClass('.cpage').addClass('fpage'); 
     }); 
    }); 
}); 

我想varcpage採取.nexthref值(在這種情況下:#view)和它的變量使用它作爲名稱。在這種情況下我沒有錯?我怎麼把cpage var變成#view?

回答

2

.nexta本身。你不需要使用.find

var cpage = $(this).attr('href'); 

OR

var cpage = this.href; 

編輯:cpage是你需要做的這個選擇元素

$(cpage).removeClass('.cpage').addClass('fpage'); 
+1

我會用'this.href'。 – Blender

+0

嗯...我已經做到了這一點,代碼似乎仍然沒有工作。我的代碼的第一部分工作,第一部分是獲取addClass,但第二部分不(其中cpage.removeClass開始) – David

+1

@David作爲'cpage'是一個ID,你需要這樣做來選擇元素' - >''$(cpage).removeClass('.cpage')。addClass('fpage');' –

1

就一個ID據我瞭解,這應該解決:

fpage.addClass('anim').delay(500).queue(function(next){ 
    $(this).removeClass().addClass('cpage'); 
    next(); 
    $(cpage).removeClass('.cpage').addClass('fpage'); 
}); 
0

你有一些不合適的地方,但總之,沒有biggie。

首先,

$('.next').click(function (event) { 
    var cpage = $(this).find('a').attr('href'); 

它不能調用自身。 .next是一個標籤的類,所以如果標籤是唯一的標籤元素,標籤如何找到帶有標籤的內部元素? jQuery的.find致力於尋找兒童和孫子以及它被調用的元素。因此,這條線是一樣簡單寫爲:

var cpage = $(this).attr('href'); 

其次,

cpage.removeClass('.cpage').addClass('fpage'); 

cpage只是一個字符串變量,而不是一個jQuery對象,因此它需要一個細微的變化。嘗試:

$(cPage).removeClass 

我不知道你用的是什麼版本的jQuery,但我給你的代碼的完整擦洗下來,編輯,並使用最新的jQuery的貼合的jsfiddle。需要注意的是,如果您使用的是舊版本,則有些內容可能會有所不同,例如.on在舊版本中爲.bind.live

jsFiddle

$(function() { 
    $(".next").on("click", function(e) { 
     e.preventDefault(); 
     var cPage = $(this).attr("href"), 
      fPage = $(this).closest("section"); 

     fPage.addClass("anim").delay(500).queue(function(n) { 
      $(this).removeClass().addClass('cpage'); 
      n(); 
      $(cPage).removeClass('.cpage').addClass('fpage'); 
     }); 
    }); 
}) 
+0

謝謝你。我會相應地更新我的代碼。我其實是一個初學者,因此寫得很差的代碼...... :) – David

+0

@David歡迎登上。如果您希望查看更多jQuery實例,可以在這裏查看我的個人資料(我已經回答了很多jQuery問題),或者查看我的[jsFiddles列表](http://jsfiddle.net/ SpYk3/Q2R7P /)(我有很多jQuery示例用法和插件) – SpYk3HH

相關問題