如何通过URL动态生成的锚标签的jQuery悬停()函数?(How to pass URL for

2019-10-17 19:53发布

你好我想在这里做的是我生成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 ,链接等的位置..

对于单锚标记,它正在而是multiplle not..Please帮助我。 提前致谢。

Answer 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
            }
          });
    });    


Answer 2:

您应该使用类,而不是使用同一个ID为多个对象,并使用this.href为每个对象。 到不止一个HTML元素分配相同的ID是不允许的,但你可以做到这一点。

<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
            }
          });
});


Answer 3:

您可以使用$(this)中,如果您的悬停事件处理程序来获取href属性。 而其他的答案是关于使用类而不是ID的正确。 下面的例子中被设置为使用的“clickme”一类,而不是一个id。

$('.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
            }
          });
    });


Answer 4:

它不工作,因为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
    });
});


文章来源: How to pass URL for dynamically generated anchor tags to jQuery hover() function??