Можно ли изменить курсор на элементе без обновления страницы? - PullRequest
0 голосов
/ 11 мая 2011

У меня есть карусель, прокручивающая слайды.Карусель имеет оверлей с более высоким z-индексом, чем содержимое под ним.Некоторые слайды содержат ссылки, некоторые нет.Мой jQuery получает ссылку ссылки на слайды и создает ссылку на эту ссылку при нажатии.

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

Моя проблема в том, что я хочу изменить курсор на указатель, когда слайд содержит ссылку и курсорна авто, когда нет ссылки.(Изменение не будет иметь значения, когда пользователь наводит курсор на карусель, потому что в этом случае слайды не перемещаются автоматически)

У меня уже есть функция щелчка, которая не позволяет наложению связываться где-либо, когдассылки нет, однако курсор в настоящее время контролируется CSS.Я пытался использовать addClass, но это не сработало.

Возможно ли вообще изменить состояние наведения курсора на том же элементе div, просто используя jQuery и CSS?

Это частьфункции, которая не дает оверлею делать что-либо, если нет ссылки:

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

Приветствия

Ответы [ 2 ]

2 голосов
/ 11 мая 2011

Вы можете добавить скрипт наведения к своему наложению и установить указатель на over, если условие (href is! = "" В этом примере) соответствует.

$(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 голосов
/ 11 мая 2011

Я использую что-то вроде

.clickable { cursor :pointer !important; }

и я использую addclass для элемента, на который я хочу включить указатель, затем использую removeClass, чтобы получить его.

в вашей ситуации вы можете сделать что-то вроде (в вашем CSS)

.clickable a { cursor :pointer !important; }

, а затем используйте jQuery, чтобы добавить этот класс к любому элементу, который вам нужен, и он создаст указатель над тегом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...