所以我为我的网站设置了一个滚动代码。
<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');
});
});
});
我希望var
:cpage
获取.next
href
值(在本例中为#view)并将其用作其变量的名称。在这个例子中我有什么不对的?如何将cpage var
转换为#view?
答案 0 :(得分:2)
.next
是a
本身。您不需要使用.find
var cpage = $(this).attr('href');
OR
var cpage = this.href;
编辑:因为cpage
是您需要执行此操作以选择元素的ID
$(cpage).removeClass('.cpage').addClass('fpage');
答案 1 :(得分:1)
据我所知,这应该解决:
fpage.addClass('anim').delay(500).queue(function(next){
$(this).removeClass().addClass('cpage');
next();
$(cpage).removeClass('.cpage').addClass('fpage');
});
答案 2 :(得分:0)
你有一些不合适的东西,但总的来说,没什么大不了的。
首先,
$('.next').click(function (event) {
var cpage = $(this).find('a').attr('href');
它不能称之为自我。 .next
是a标记的类,那么如果标记是唯一的标记元素,标记如何找到带有a标记的内部元素? jQuery的.find
用于寻找子孙,以及它所要求的元素。因此,这一行与以下内容一样简单:
var cpage = $(this).attr('href');
其次,
cpage.removeClass('.cpage').addClass('fpage');
cpage
只是一个字符串变量,而不是jQuery对象,因此需要稍作修改。尝试:
$(cPage).removeClass
我不知道你正在使用什么版本的jQuery,但我给你的代码完全清理并编辑并使用最新的jQuery发布了一个jsFiddle。需要注意的是,如果您使用的是旧版本,则可能会有所不同,例如旧版本中.on
为.bind
或.live
。
$(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');
});
});
})