单击后滚动到页面顶部

时间:2012-05-31 09:12:59

标签: javascript jquery

我有这个代码来切换切换按钮图像:

$("#invio_scatola_on, #invio_scatola_off").click(function(){
    $("#invio_scatola_off").toggle();
    $("#invio_scatola_on").toggle();
});

执行时,浏览器会转到页面顶部。为什么呢?

4 个答案:

答案 0 :(得分:3)

您可能需要阻止您点击的任何元素的默认操作:

$("#invio_scatola_on, #invio_scatola_off").on('click', function(e){
    e.preventDefault();
    $("#invio_scatola_off, #invio_scatola_on").toggle();
});

答案 1 :(得分:1)

根据您提供的少量信息,如果浏览器滚动到顶部,则表示您需要阻止其默认行为。

检查浏览器是否追加“某事”到当前网址...

你可以像这样阻止:

$("#invio_scatola_on, #invio_scatola_off").click(function(event){

  // prvent default behavior
  event.preventDefault();

  $("#invio_scatola_off").toggle();
  $("#invio_scatola_on").toggle();
});

有关其工作原理的更多信息,请参阅jQuery event.preventDefault()

答案 2 :(得分:1)

我只能猜测,因为你没有发布你的HTML代码。很可能你的两个元素是href="#"的链接。单击处理程序后,将触发常规操作,导航到您站点上的锚点#(位于顶部)。

尝试:

$("#invio_scatola_on, #invio_scatola_off").click(function(event){
    $("#invio_scatola_off").toggle();
    $("#invio_scatola_on").toggle();
    event.preventDefault();
});

看看是否有帮助。有关使用jQuery取消事件的更多信息:

http://api.jquery.com/event.preventDefault/

答案 3 :(得分:1)

我认为 h 标记点击 点击 href 因此,您可以使用 javascript preventDefault()

$("#invio_scatola_on, #invio_scatola_off").click(function(evt){
    evt.preventDefault();
    $("#invio_scatola_off").toggle();
    $("#invio_scatola_on").toggle();
});