0

我的页面顶部显示了指向数据页面的链接。我也将其克隆到页面底部。问题在于试图删除href活动页面的属性。这适用于链接的顶行,但不适用于底部。

<div class="pages"></div>

<div id="workspace"><br/></div>

<div id="pagesclone"></div>

jQuery:

//Generate page number links
for (x = 1; x < 6; x++) {
    $('.pages').append(' <a href="#" class="links">' + x + '</a> ');    
}

page = 1;

//Function for link clicks
$('.links').click(function() {
    //"You clicked .."
   current = $(this).html();
   $('#workspace').html('You clicked ' + current);

    //shifting the active page    
   $('.links').slice(page - 1, page).attr('href', '#'); //activate preceeding link
   page = $(this).html(); //reset page number to the link clicked
   $('.links').slice(page - 1, page).removeAttr('href'); //remove href attribute
});


//Clone the top row of links to the bottom
$('.pages').clone(true, true).appendTo('#pagesclone');

一切对我来说都是正确的。如何使下部页面上的克隆链接在href单击时也具有删除属性,反之亦然?

jsfiddle:http: //jsfiddle.net/JshnC/10/

4

2 回答 2

1

主要问题是您的page索引仅指向第一行的元素。如果添加 $(".links") 长度的一半,您将获得第二行元素的索引,并且可以使其工作。

在http://jsfiddle.net/dLKfA/有一个采用这种方法的工作(但丑陋)版本

如果您引入更多类,您可以使您的代码更好:

生成时:

$('.pages').append(' <a href="#" class="links link-' + x + '">' + x + '</a> ');    

然后在更新时:

$('.links.link-' + page).attr('href', '#'); //activate preceeding link
page = $(this).html(); //set page number to the link clicked
$('.links.link-' + page).removeAttr('href'); //remove href attribute 

而且,@elclanrs 对全局变量的评价。他们很可能会在某个时候咬你。

于 2012-05-29T03:11:32.873 回答
1

这可能不是最有效的,但这是一种方法

var link = [1, 2, 3, 4, 5];

$.each(link, function(a) {
    $(".pages").append("<a href='#' class='a" + a + "'>" + link[a] + "</a>");
});

$("a").click(function() {
    $("." + $(this).attr('class')).removeAttr("href");
});​
于 2012-05-29T03:35:15.523 回答