【发布时间】:2018-10-04 04:27:14
【问题描述】:
我正在使用NonFactor MVC grid 创建一个带有可点击行的网格:
$('.mvc-grid').mvcgrid({
reloadEnded: function () { $('.lds-facebook').hide(); },
rowClicked: function (row, data, e) { window.location.href = '@Url.Action("Details","CRMTItems")/' + data.Id }
});
为一行生成的html如下所示
<tr class="Opportunity crmtRow">
<td class="hidden">9</td>
<td>Project Name</td>
<td>Client Name</td>
<td>Project Owner</td>
<td><a class="btn btn-default btn-sm rowWorkspaceLink pull-right"
href="http://google.com"
target="_blank"><span class="glyphicon glyphicon-globe"></span></a></td>
</tr>
所以当我点击一行时,它会将我带到该项目的视图,如果我点击glyphicon-globe,它会将我带到http://google.com
我看到的问题是,如果我点击地球,它确实会弹出一个带有 google 的新标签,但随后在原始标签中它也会导航到项目页面。当悬停在地球上时,我可以看到 hover 也被应用于行元素
如何单击字形图标以忽略下面的元素? IE。如果我点击地球图标,页面不应该重定向,但应该打开一个新标签并导航到谷歌
this fiddle 说明了我的问题
【问题讨论】:
-
试试这个文件jsfiddle.net/hxkdL2zt/2
-
我已经加了
return false,不需要加event.preventDefault();和event.stopPropagation(); -
@user1608841 这也有效,但它会阻止我已经在我的网格模板中设置的导航。似乎为了实现我想要的,我必须放弃地球的网格列模板,或网格初始化中的
rockClicked选项 -
你可以使用 event.preventDefault();和 event.stopPropagation();
标签: javascript html css nonfactors-mvc-grid