链接与onClick

时间:2013-09-03 20:34:14

标签: javascript jquery ajax onclicklistener

我有一个专门使用AJAX的Web应用程序,因此没有完全刷新,所有内容都设置为

<a href="javascript:...()">

它在Chrome和Firefox上运行得非常好,但IE要求每次点击任何内容时确认页面重新加载。将链接更改为

会更好吗?
href="#" 

并将功能转换为onClick?

感谢。

3 个答案:

答案 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()