我有链接到页面顶部显示的数据页面。我也将它克隆到页面底部。问题在于尝试删除活动页面的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/
答案 0 :(得分:1)
主要问题是您的page
索引仅指向第一行的元素。如果你加上$(“。links”)长度的一半,你就得到了第二行元素的索引,你可以使它工作。
如果引入some more classes:
,您可以使代码更好生成时:
$('.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对全局变量的评价也是如此。他们很可能在某些时候咬你。
答案 1 :(得分:1)
这可能不是效率最高here is one way:
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");
});