Jquery 使用木偶处理锚定标签点击

Jquery 使用木偶处理锚定标签点击,jquery,jquery-mobile,backbone.js,marionette,Jquery,Jquery Mobile,Backbone.js,Marionette,我想要的是处理我的木偶.ItemView事件中的锚定按钮单击。我不想在锚标记中使用href。我想处理我的项目视图中的点击,并要求主干审批人更改页面 我想通过单击锚按钮将我的页面从索引切换到我的帐户。我的模板如下所示 <div> <a data-role="button" id="btn_eclipse" class="btn_eclipse_myaccount"><%= val_btn_myaccount %></a> <a

我想要的是处理我的木偶.ItemView事件中的锚定按钮单击。我不想在锚标记中使用href。我想处理我的项目视图中的点击,并要求主干审批人更改页面

我想通过单击锚按钮将我的页面从索引切换到我的帐户。我的模板如下所示

<div>
    <a data-role="button" id="btn_eclipse" class="btn_eclipse_myaccount"><%= val_btn_myaccount %></a>
    <a data-role="button" id="btn_eclipse" class="btn_eclipse_services"><%= val_btn_services %></a>
    <a data-role="button" id="btn_eclipse" class="btn_eclipse_offers"><%= val_btn_offers %></a>
</div>
我无法从锚标签中检索到您在回答中指定的ID或任何其他属性,如href

请告诉我该怎么办


提前感谢。

您可以通过以下方式做您想做的事情:

var MyView = Backbone.Marionette.ItemView.extend({
  events : {
    "click a" : "handleRouting"
  },

  handleRouting : function (e) {
    e.preventDefault();
    Backbone.history.navigate(/*whatever your route is*/, true);
  }
});
虽然上述方法可行,但我建议您做您不想做的事情,即使用
a
标记上的
href
,并使用一个全局侦听器连接到路由

根据您的评论问题,您可以使用如下内容实现全局侦听器:

$(document).on("click", "a", function (e) {
  var href = $(this).attr("href");
  if (href && href.match(/^\/.*/) && $(this).attr("target") !== "_blank") {
    e.preventDefault();
    Backbone.history.navigate(href, true);
  }
});

如果您使用的是HTML推送API(而不是#!s),则类似于上述内容的内容将捕获通过
主干路由它们的链接单击。路由器

我已经实现了一个
行为
来使用
v-href
属性自动处理此问题


我在我所有的应用程序中都广泛使用它,它就像一个符咒

你好,安德鲁,谢谢你的回复。你能告诉我如何使用全局侦听器实现第二个href选项吗@AndrewI更新了我的答案,给出了一个使用
hrefs
和常规标签连接bb路由器的示例。如果这对你不起作用或者你还有其他问题,请告诉我。你好@Andrew。谢谢你的回答。但是你能帮我在我的木偶网中检索href属性吗。我已经更新了上面的代码,我无法从我的锚标记中检索href或id或其他属性。请帮助。您的代码看起来几乎正确。如果实际单击的
a
标记中有标记,则可能应该使用
event.currentTarget
而不是
event.target
。此外,它可能是一个输入错误,但您需要实际调用
event.preventDefault()。不幸的是,这并不是一个真正的答案,但你的回复让浏览变得有趣。。。
$(document).on("click", "a", function (e) {
  var href = $(this).attr("href");
  if (href && href.match(/^\/.*/) && $(this).attr("target") !== "_blank") {
    e.preventDefault();
    Backbone.history.navigate(href, true);
  }
});