【问题标题】:Is it possible to change the cursor on an element without refreshing the page?是否可以在不刷新页面的情况下更改元素上的光标?
【发布时间】:2011-08-23 08:40:20
【问题描述】:

我有一个轮播在幻灯片中滚动。轮播有一个覆盖层,其 z-index 高于其下方的内容。有些幻灯片包含链接,有些则没有。我的 jQuery 获取幻灯片链接的 href,并在单击时将覆盖链接添加到该 href。

[Slide 1: <p>] [Slide 2: <p> <a>]

我的问题是,我想在幻灯片包含链接时将光标更改为指针,在没有链接时将光标更改为自动。 (当用户将鼠标悬停在轮播上时,更改无关紧要,因为在这种情况下幻灯片不会自动移动)

我已经有一个点击功能,可以在没有链接时阻止覆盖在任何地方链接,但是光标当前由 CSS 控制。我尝试使用addClass,但这不起作用。

是否真的可以仅使用 jQuery 和 CSS 来更改同一 div 上的光标悬停状态?

这是在没有链接时阻止叠加层执行任何操作的函数:

$('#carousel_overlay').click(function() {
    slideLinkTarget = promoSlides.eq(activeSlideIndex).find('a').attr('href'); 
    if (!slideLinkTarget == '') {    
        window.open(slideLinkTarget); 
        ('#carousel_overlay').addClass('link');
    } else {
        return false;   
        $('#carousel_overlay').removeClass('link');        
    }            
});

(我知道这是一个点击功能,如果我想让光标在悬停时改变,它将不起作用)

#carousel_overlay{cursor: auto;}
#carousel_overlay.link{cursor: pointer;}

干杯

【问题讨论】:

  • 你能告诉我们当前的JS代码来改变指针吗?

标签: jquery html css dom


【解决方案1】:

您可以将悬停脚本添加到您的叠加层,并在条件(在本例中为 href 为 != "")匹配时将指针设置为 over。

$(function() {
   $('overlay').hover( function() {
      // the selector should match your link
      if ( $('image').attr('href') != "" ) {
         $(this).css('cursor', 'pointer');
      }
   },
   function() {
      $(this).css('cursor', 'default');
   });
});

也许这不适用于复制和粘贴,因为我不知道你的 HTML。

【讨论】:

    【解决方案2】:

    我使用类似的东西

    .clickable { cursor :pointer !important; }
    

    我使用 addclass 到我希望指针打开的元素,然后使用 removeClass 将其取出。

    你的情况你可以做类似的事情(在你的 CSS 中)

    .clickable a { cursor :pointer !important; }
    

    然后使用 jQuery 将该类添加到您需要的任何元素中,它会在标签上生成一个指针

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-28
      • 1970-01-01
      • 2020-10-31
      • 2021-06-13
      • 1970-01-01
      • 2021-12-27
      • 2018-02-23
      • 2011-09-01
      相关资源
      最近更新 更多