Кликабельный указатель блока - PullRequest
1 голос
/ 01 марта 2010
// clickable blocks
$(".product").click(
function () {
    window.location = $(this).find('a').attr("href").css("cursor", "pointer");
    return false;
});

Контейнер сделан кликабельным, но курсор остается прежним. Почему не работает css-селектор?

Ответы [ 3 ]

4 голосов
/ 01 марта 2010
  1. Найти все товары, на которые есть ссылка
  2. Ставит указатель в качестве курсора
  3. Обработка события щелчка для изменения местоположения

Код:

$(".product:has(a[href])")
    .css("cursor", "pointer")
    .click(function()
    {
        window.location = $("a", this).attr("href");
    });
2 голосов
/ 01 марта 2010

Возвращаемое значение из ".attr" является значением атрибута, а не объектом jquery.

$(".product").click(function () {
  window.location = $(this).find('a').attr("href");
  $(this).find('a').css("cursor", "pointer");
  return false;
});

Если вы хотите, чтобы у «контейнера» был новый курсор, то, возможно, вам нужно это:

$(".product").click(function () {
  window.location = $(this).find('a').attr("href");
  $(this).css("cursor", "pointer");
  return false;
});
0 голосов
/ 01 марта 2010

Вы действительно хотите установить курсор в блоке кликов? Мне кажется, что чтобы делать то, что вы действительно хотите, вам нужно это:

Редактировать: ОК, принимая во внимание, что вы хотите установить события клика только для тех, которые содержат:

$(function() { // or $(document).ready(function() {
    $(".product").each(function() {
        if ($(this).has('a')) {
            $(this).css("cursor", "pointer");
            $(this).click(
            function () {
                window.location = $(this).find('a').attr("href");
                return false;
            });
        }
    });
});
...