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")の半分の長さを追加すると、2番目の行の要素のインデックスを取得し、それを機能させることができます。

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

これはおそらく最も効率的ではありませんが、ここに 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 に答える