我有一个报告功能answerCardInnerLinkReportingCall
,可以在点击特定div中的<a>
标记时调用。我使用event.preventDefault();覆盖默认的单击行为。
目前,我在使用window.open('http://stackoverflow.com/', '_blank');
方法发送所有报告参数后,将用户重定向到报告功能中的目标网址。
jQuery(document).on('click','#answerCard a', function(event) {
event.preventDefault();
answerCardInnerLinkReportingCall(this);
});
如果我在标签中使用onclick函数,我会返回true,如果没有我手动重定向用户,它会使href工作但是可以在单击处理程序中执行相同操作吗?我无法使用onclick,因为我无法控制html数据。
我想检查是否有更好的方法来实现它?
编辑1:添加示例HTML
<div class="answer" style="display: block;">
<div class="well">
<div id="answerCard" answercardid="check_phone_acard">
<h3 id="answerTitle">check your phone</h3>
<div><ol class="answerSteps"><li>Go to <a title="Link opens in a new window" href="https://test.com" target="_blank">Check phone</a>. If prompted, log in.</li></ol></div>
<label id="seeMoreAnswer">Displaying 1 of 1 steps. </label></div>
<!-- Utility Section -->
<div class="util">
<span class="pull-left"><a id="viewFull" href="/test.jsp?sid=52345">View full article ?</a></span>
<span class="pull-right">
</div>
</div>
</div>
</div>
答案 0 :(得分:2)
我猜你不需要使用任何'event.preventDefault();'如果你想在脚本执行后使用链接本机功能。
试试这个
jQuery(document).on('click','#answerCard a', function(event) {
//event.preventDefault();
alert('script running');
answerCardInnerLinkReportingCall(this);
});
还创建了 JS Fiddle 。看看吧。
答案 1 :(得分:0)
您可以使用javascript&#39; s:
window.location.href = 'http://url.here.com';
告诉浏览器导航到某个页面。希望它有所帮助。
其他方式可以是从answerCardInnerLinkReportingCall返回true或false,具体取决于该调用或不调用event.PreventDefault();
答案 2 :(得分:0)
尝试这样的事情:
$('#answerCard a').click(function(event) {
var loc = $(this).attr('href');
event.preventDefault();
answerCardInnerLinkReportingCall(loc, this);
});
function answerCardInnerLinkReportingCall(loc, that){
// your code to do stuff here
window.open(loc, '_blank');
}