1

こんにちは、ここでやろうとしているのは、アンカー タグとして HTML でリンクのリストを生成することです。

<a href="/path/100" id="clickme">One link</a>
<a href="/path/101" id="clickme">Sec link</a>
<a href="/path/102" id="clickme">Third link</a>
<a href="/path/103" id="clickme">Fourth link</a>

Ajax誰かがリンクのいずれかにカーソルを合わせたときに、特定の URL への呼び出しを開始したいと考えています。だから私はhover()このIDのためにこのような関数を登録しています:

$('#clickme').hover(function(){
         $.ajax({
                beforeSend : function(jqXHR){
                    //Doin something
                },
                url: //should be the url from the anchor tag that fired this event(how to get it??),
                success: function(data) {
                    //Doin something
                },
                error: function(jqXHR){
                    //Doin something
                }
              });
        });

私の質問は、アンカータグをオブジェクトまたは何かとして渡して、好きなものhref、リンクの位置などを取得できるようにする方法です..

単一のアンカータグの場合は機能しますが、複数の場合は機能しません..助けてください。前もって感謝します。

4

4 に答える 4

1

複数のオブジェクトに同じ ID を使用する代わりにクラスを使用this.hrefし、各オブジェクトに使用する必要があります。同じ id を複数の html 要素に割り当てることはできますが、許可されていません。

<a href="/path/100" id="clickme" class="someclass">One link</a>
<a href="/path/101" id="clickme" class="someclass">Sec link</a>
<a href="/path/102" id="clickme" class="someclass">Third link</a>
<a href="/path/103" id="clickme" class="someclass">Fourth link</a>


$('.someclass').hover(function(){
     $.ajax({
            beforeSend : function(jqXHR){
                //Doin something
            },
            url: //should be the url from the anchor tag that fired this event(how to get it??),
            success: function(data) {
                //Doin something
            },
            error: function(jqXHR){
                //Doin something
            }
          });
});
于 2013-03-14T12:26:47.860 に答える
1

id は常に一意である必要があります (そのため、ID と呼ばれます) .. クラスにして、クラス セレクターを使用します

html

<a href="/path/100" class="clickme">One link</a>
<a href="/path/101" class="clickme">Sec link</a>
<a href="/path/102" class="clickme">Third link</a>
<a href="/path/103" class="clickme">Fourth link</a>

jquery

$('.clickme').hover(function(){
     var $this=$(this);
     $.ajax({
            beforeSend : function(jqXHR){
                //Doin something
            },
            url: //should be the url from the anchor tag that fired this event(how to get it??),
            data:{'href':$this.attr('href')}, //this will send '/path/100' as href if u click first link 
            success: function(data) {
                //Doin something
            },
            error: function(jqXHR){
                //Doin something
            }
          });
    });    
于 2013-03-14T12:26:57.603 に答える
1

ID は一意であり、jQuery は ID の最初のインスタンスしか見つけられないため、機能していません。

<a href="/path/100" class="clickme">One link</a>
<a href="/path/101" class="clickme">Sec link</a>
<a href="/path/102" class="clickme">Third link</a>
<a href="/path/103" class="clickme">Fourth link</a>

js

$('.clickme').mouseenter(function(){
    var href = $(this).attr('href');
    $.ajax({
         url : href
    });
});
于 2013-03-14T12:27:02.860 に答える
1

ホバー イベント ハンドラーの場合は、内部で使用$(this)して href 属性を取得できます。そして、IDの代わりにクラスを使用することについて、他の答えは正しいです。以下の例では、id の代わりに「clickme」のクラスを使用するように設定されています。

$('.clickme').hover(function(){
     var $this = $(this);
     var theUrl = $this.attr('href');

     $.ajax({
            beforeSend : function(jqXHR){
                //Doin something
            },
            url: theUrl
            success: function(data) {
                //Doin something
            },
            error: function(jqXHR){
                //Doin something
            }
          });
    });
于 2013-03-14T12:32:31.910 に答える