【问题标题】:Clickable block pointer可点击的块指针
【发布时间】:2010-03-01 15:54:51
【问题描述】:
// clickable blocks
$(".product").click(
function () {
    window.location = $(this).find('a').attr("href").css("cursor", "pointer");
    return false;
});

容器可点击,但光标保持不变。为什么 css 选择器不起作用?

【问题讨论】:

    标签: jquery css clickable mouse-cursor


    【解决方案1】:
    1. 查找所有具有链接的产品
    2. 将指针作为光标
    3. 处理点击事件改变位置

    代码:

    $(".product:has(a[href])")
        .css("cursor", "pointer")
        .click(function()
        {
            window.location = $("a", this).attr("href");
        });
    

    【讨论】:

    • 啊,我忘了除了 .has 函数之外还有一个 :has 选择器。哎呀。 (对于has,jQuery 站点搜索没有返回任何内容并没有帮助)
    【解决方案2】:

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

    【讨论】:

    • 那是因为它只会有光标点击。
    【解决方案3】:

    您真的要将光标设置在点击块中吗?在我看来,要做你真正想做的事,你需要这个:

    编辑:好的,考虑到您只想在包含 a: 的事件上设置点击事件

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

    【讨论】:

    • 我猜它会添加指向所有 .product 块的指针?我也可以通过 css 做到这一点,但只有链接的应该有。
    • @Nimbuz:这个编辑后的版本可能更符合你的要求。
    • $(".product:has(a[href])") 应该为您提供带有链接的产品
    猜你喜欢
    • 1970-01-01
    • 2014-11-21
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多