我有下一个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中,当我点击输入提交时,它仍然会引导我到锚点链接。
答案 0 :(得分:1)
取消点击preventDefault
$("#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;
答案 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');