如何使href和jquery单击事件工作

时间:2015-04-20 18:19:58

标签: javascript jquery click

我有一个报告功能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>

3 个答案:

答案 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');
}

请参阅this demo fiddle