我有一个专门使用AJAX的Web应用程序,因此没有完全刷新,所有内容都设置为
<a href="javascript:...()">
它在Chrome和Firefox上运行得非常好,但IE要求每次点击任何内容时确认页面重新加载。将链接更改为
会更好吗?href="#"
并将功能转换为onClick?
感谢。
答案 0 :(得分:2)
只需停止使用内联javascript。你不需要它。
输出与数据属性中的元素关联的id:
<a href="#" data-id="34" class="list-item">listitem1</a>
现在,您可以从外部js文件绑定到这些点击事件:
$(document).ready(function(){
$(".list-item").click(function(e){
e.preventDefault(); // stop jump to top
var theId = $(this).attr("data-id"); // get the id
someFunction(theId); // execute some terribly written function
});
});
此 跨浏览器工作。
答案 1 :(得分:0)
使用“href ='#'”你可能需要阻止你的JS函数的默认值,因此页面不会因为'#'锚而无法登顶。
我愿意:
HTML
<a href="javascript:void(0)" class="someclass" rel='2'>
JS
$('.someclass').on('click', function(){
var value = $(this).attr('rel');
// use 'value' as you would normaly do with your function(2)
});
或者这个:
HTML
<a href="#" class="someclass" rel='34'>
JS
$('.someclass').on('click', function(e){
e.preventDefault();
var value = $(this).attr('rel');
// use 'value' as you would normaly do with your function(34)
});
答案 2 :(得分:-1)
使用<a href="#" onclick="myFunction()"></a>
。
此外,请确保在您的javascript函数中停止事件传播,如下所示:
function myFunction() {
//Your code here
event.preventDefault ? event.preventDefault() : event.returnValue = false;
return false;
}
这将阻止浏览器跳转到页面顶部并且与IE兼容,因为IE不使用event.preventDefault()