【问题标题】:How can I simulate a click event on an anchor tag without actually calling click or refreshing?如何在不实际调用单击或刷新的情况下模拟锚标记上的单击事件?
【发布时间】:2015-01-13 17:02:49
【问题描述】:

我正在使用带有铁路由器和流星标准火焰诱人的流星。

我有一个 ul 设置,这样当我的一个 li 项目被点击时,它包含的锚标签被点击使用功能点击。唯一的问题是,当使用该功能单击 a 时,它会被视为对我的 li 的另一次单击,并且我的菜单没有正确切换。

我想知道是否有一种方法可以在不实际调用点击函数的情况下调用 pathFor。

感谢您的帮助!

更新,这是它与一个非常标准的下拉导航一起工作的代码。我不确定我是否可以像 jquery 事件一样捕获该事件,因为我认为它是在 [0] 上工作的标准浏览器点击事件,但我认为我应该能够制作一个与 href 匹配的函数来路由和调用Router.go

Template.nav.rendered = () ->
    # set initial page view and take care of refeshes
    currentPageHtlm = getCurrentPage(window.location.pathname)
    $('#currentPage').find('span').html(currentPageHtlm)

    $("li").on "click", () ->
        #simulate anchor click and set currentPage session
        $(this).find("a")[0].click()
        Session.set 'pageName', getCurrentPage($(this).find("a").attr("href"))
        currentPageHtlm = Session.get 'pageName'
        $('#currentPage').find('span').html(currentPageHtlm)

        # toggle nav and arrow if mobile view
        if $('.smOnly').css('display') != 'none'
            $('#nav').slideToggle('slow')
            $('#dropArrow').toggleClass('fa-caret-square-o-down fa-caret-square-o-up')

【问题讨论】:

  • 分享你的 js 代码。你应该尝试e.stopPropagation()e.preventDefault() 以避免事件冒泡。

标签: meteor iron-router meteor-blaze


【解决方案1】:

听起来您正在寻找一种以编程方式从 JS 重定向的方法,而不是通过 UI 交互,在这种情况下,您需要使用 Router.go('ROUTE_NAME'),就像 the docs 一样(您可以使用 @ 中的路由名称987654323@ 作为提供实际路径的替代方法)。

【讨论】:

    猜你喜欢
    • 2014-05-17
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    相关资源
    最近更新 更多