在锚内部,停止重定向

时间:2015-07-21 15:03:54

标签: javascript jquery html css

我有下一个HTML:

<a href="https://google.com" >
    <div id="first"></div>
    <div id="second"></div>
</a>

目前,当我点击div #first时,我需要https://google.com.I不要这样做。我想在div #first上没有效果锚,所以当我点击div #first时,没有任何事情发生。

我无法处理锚点,假设我可以为div #first添加javascript。

修改

我忘了告诉我的div包含附加事件提交的表单:

<script>
 function submitForm(_this){
    //do Ajax call
    return false;
 }
</script>

<a href="https://google.com" >
    <div id="first"></div>
        <form method="post" onsubmit="return submitForm(this)">
           <input id="email" name="Email" type="text">
           <input id="submit" name="submit" value="Register" type="submit">
        <form>
    <div id="second"></div>
</a>

So if I add this:
<script>
   jQuery("#first").on("click", function (e) { e.preventDefault(); });
</script>

然后我的表格不起作用。

修改 所以如果在输入提交点击上添加e.stopPropagation(),就像这样

<script>
   jQuery("#submit").on("click", function (e) { e.stopPropagation(); });
   jQuery("#first").on("click", function (e) { e.preventDefault(); });
</script>

它会正常工作,但e.stopPropagation();在Safari中无法正常工作。在Safari中,当我点击输入提交时,它仍然会引导我到锚点链接。

4 个答案:

答案 0 :(得分:1)

取消点击preventDefault

&#13;
&#13;
$("#firs").on("click", function (e) { e.preventDefault(); });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="https://example.com" >
    <div id="firs">X</div>
    <div id="second">Y</div>
</a>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

使用以下

event.preventDefault()

答案 2 :(得分:0)

要么不将div放在锚中,要么使用以下内容:

document.getElementById('firs').addEventListener('click', function(event) {
    event.preventDefault();
});

答案 3 :(得分:0)

我认为这可能会有所帮助(你的id说冷杉但是拼写我会先放在第一位)

$("#first *").attr("disabled", "disabled").off('click');
相关问题