首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery -仅选择当前链接

问jQuery -仅选择当前链接
EN

Stack Overflow用户
提问于 2015-11-19 09:58:42
回答 4查看 65关注 0票数 0

如何将该功能仅应用于此菜单上的当前链接?如果我单击Decline链接,该函数将应用于所有链接。

我正在使用以下脚本:

代码语言:javascript
复制
$(".js-decline, .js-no").click(function () {
    var declineUser = $('.js-decline-txt');
    var hiding = !declineUser.hasClass('hide');
    if (hiding) {
        $('.js-decline-txt').addClass('hide');
    }

    $(".decline-content").toggle("slide", {
        direction: "left"
    }, 400, function () {
        if (!hiding) {
            $('.js-decline-txt').removeClass('hide').css('display','inline-block');
        }
    });

});

这是一个示例

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-11-19 10:11:40

在您的问题中,您使用static approach通过jquery选择器获取元素,这需要通过使用$(this)(refer to the element on which event occur at the time)在dynamic manner中进行更改,但也需要使用separate both click,因为如果我们想要特定于元素,则需要使用$(this),而且在这两种情况下,这都引用了在Dom元素动态搜索过程中引起问题的不同元素。

代码语言:javascript
复制
$(".js-decline").click(function () {
    var declineUser =  $(this).find('.js-decline-txt');

    var hiding = !declineUser.hasClass('hide');
    if (hiding) {
        $(this).find('.js-decline-txt').addClass('hide');
    }

    $(this).next("div.decline-content").toggle("slide", {
        direction: "left"
    }, 400, function () {
        if (!hiding) {
            declineUser.removeClass('hide').css('display','inline-block');
        }
    });

});

$(".js-no").click(function () {
       var declineUser =  $(this).parents('li').find('.js-decline-txt');

     var hiding = !declineUser.hasClass('hide');
    if (hiding) {
          $(this).parents('.js-decline-txt').addClass('hide');
    }
    $(this).parents("div.decline-content").toggle("slide", {
        direction: "left"
    }, 400, function () {
        if (!hiding) {
            declineUser.removeClass('hide').css('display','inline-block');
        }
    });

});

Js Fiddle

票数 2
EN

Stack Overflow用户

发布于 2015-11-19 10:06:17

关于选择者的一切..。你需要使用$(this) , .find() and .next() ..。

你可以这样用它

代码语言:javascript
复制
$(".js-decline, .js-no").click(function () {
    var declineUser = $(this).find('.js-decline-txt');
    var hiding = !declineUser.hasClass('hide');
    if (hiding) {
        declineUser.addClass('hide');
    }

    $(this).next(".decline-content").toggle("slide", {
        direction: "left"
    }, 400, function () {
        if (!hiding) {
            declineUser.removeClass('hide').css('display','inline-block');
        }
    });

});

演示

票数 1
EN

Stack Overflow用户

发布于 2015-11-19 10:15:55

试试小提琴

代码语言:javascript
复制
$(".js-decline, .js-no").click(function () {
    var ClickedLink = $(this); // cache the clicked object
    var declineUser = $('.js-decline-txt');
    var hiding = !declineUser.hasClass('hide');
    if (hiding) {
        ClickedLink.next('.js-decline-txt').addClass('hide'); // refer cached object to find referring objects
    }
    ClickedLink.next(".decline-content").toggle("slide", {
        direction: "left"
    }, 400, function () {
        if (!hiding) {
            ClickedLink.removeClass('hide').css('display','inline-block');
        }
    });

});

我希望这对你有用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33800561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档