我在这里缺少什么?
请注意:使用jQuery MOBILE
如果我使用的是preventDefault,那么页面加载就好像我只有链接而没有脚本一样,当我改为返回false(我总是习惯在普通的JS onclick事件处理程序上使用)时,它按预期工作。 我已经查看了其他帖子,并且都使用了.click,并建议使用preventDefault。
$(document).ready(function() {
$("#leftdiv a").on("click",function(e) {
$("#rightDiv").load(this.href);
return false; // I was sure preventDefault would work
});
});
HTML
<div id="leftdiv" style="position:absolute;padding-right:5%; overflow:scroll;">
<a href="page1.htm">Launch page 1</a><br />
<a href="page2.htm">Launch page 2</a>
</div>
<div id="rightDiv" style="padding-left:30%"></div>
答案 0 :(得分:0)
这可能提供解决方案,但我缺乏解释原因的信息。
我最近遇到了一个问题,即preventDefault没有在类似的代码中工作,问题在于从$(document) vs $('body')
委派代码尝试以下内容:
<a href="http://stackoverflow.com" id="test1">Test 1</a>
<a href="http://stackoverflow.com" id="test2">Test 2</a>
<script>
$('body').on('click', '#test1', function(e) {
e.preventDefault();
alert('hi 1');
});
$(document).on('click', '#test2', function(e) {
e.preventDefault();
alert('hi 2');
});
</script>
然而,对于jQuery 3.2.1,这不会发生,我只能确认这是2.1.7的问题