1

Webサイト用のjqueryスライダーを作成しました。合計3つのスライドがあり、各スライドには別のページにリンクしている30〜40枚の画像が含まれています。

アクティブでないスライドのhrefリンクを完全に削除し、スライドがアクティブになったら再度追加したいと思います。私は次のようないくつかの方法を試しました:

$('a').click(function(e){
e.preventDefault();
});

ただし、これはリンクのクリックを防ぐだけで、実際には削除されません。

私に何ができるかについての提案はありますか?

私がこれをしたい理由は、グーグルがページ上の100以上の内部リンクを好まないので、私はそれのほぼ2倍を持っているからです!

ありがとう、ダン

4

4 に答える 4

4

グーグルは元のコードをこすり落とし、js操作の結果となるコードには注意を払わないことに注意してください。

あなたはdomでhrefなしで始めて、次のようなものを持つことができます

<a data-href="url">

画像のスライドインのイベントが発生した場合、次の方法でアクティブ化できます。

$(this).attr('href', $(this).data('href'))

または、実際にdomreadyで一度にすべてをアクティブ化することもできます

$('#carousel a').each(function() {
    $(this).attr('href', $(this).data('href'));
});
于 2013-02-01T11:31:36.323 に答える
1

コードがわかりません。なぜクリックイベントを聞くのですか?それらを非アクティブ化したくない場合は、$("a").css("display","none");後で元に戻すことができます。HTMLを完全に削除したくない場合は、$("a").remove();

とにかく、これはあなたを助けません。Googleのインデクサーではjavascriptが有効になっていないため、生のhtmlを変更する必要があります。

于 2013-02-01T11:30:15.023 に答える
1

何らかの理由でできない場合は、現在アクティブな画像でこれを試してください

$("active image identifier selector a").attr("href", "link to add");
$("all images selector").not("active image identifier selector").find("a").removeAttr("href")

removeAttrを使用してもリンクが無効になるわけではなく、完全に削除されます。それが目的かどうかはわかりません。確認のために、リンクを非アクティブ化するか、完全に削除しますか。

e.preventDefaultはリンクを無効にするだけで、削除はしません。

2番目の画像がアクティブで、$( "images a")。attr( "href"、 "link to add")のようなことをしたとすると、その画像に追加するリンクと、画像が次のようになったときに先行する画像をどのように知ることができますかhref属性をほとんど破棄したため、アクティブになります。

私が提案する解決策は、次のようなリンクのデータ属性にリンクを格納することです。

//store href in link data for each link to be deactivated
$("all images selector").not("active image identifier selector").each(function(){

    var $this = $(this);

    //get url of link
    var url = $this.attr("href");

    //store url in a data attribute for that link
    $this.data("my-url", url);

    $(this).removeAttr("href");
});

//get data attribute of active image and readd href attribute
$("active image identifier selector a").attr("href", $("active image identifier selector a").data("my-url"));

これを試して、それが役立つかどうか私に知らせてください。それを行うのに最も効率的な方法ではないことに注意してください。リンクをループするためのより最適化された関数があるかもしれませんが、それを機能させることが最初に優先されます。

乾杯。

于 2013-02-01T11:40:09.633 に答える
0

hrefユーザーでjavascript:void(0)を使用すると、次のページに移動せず、ページでURLが使用されなくなります。

このコードを試してください:

$('a').click(function(e){
    $(this).attr("href","javascript:void(0)");
})
于 2013-02-01T11:33:55.730 に答える