0

我写了这些简单的代码。我的问题是 jquery 可以工作,但是在设置滚动位置后,我的页面正在刷新并且设置引用它的默认位置。我怎样才能停止刷新?

<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
    $(document).ready(function () {
        $("button").click(function () {
            $("div").scrollTop(30);
        });
    });
</script>

<body>
<form id="form1" runat="server">
<div style="border: 1px solid black; height: 150px; overflow: auto">
    <ul>
        <li>
            <img width="80px" style="margin-bottom: 5px;" height="70px" alt="" class="img_gallery"
                src="Images_slider/1.jpg" />
        </li>
        <li>
            <img width="80px" style="margin-bottom: 5px;" height="70px" alt="" class="img_gallery"
                src="Images_slider/2.jpg" />
        </li>

    </ul>
</div>
<br>
<button>
    Return the vertical position of the scrollbar</button>

</form>

4

3 回答 3

0

return false从处理程序中防止发生按钮单击的默认操作

$(document).ready(function () {
    $("button").click(function () {
        $("div").scrollTop(30);
        return false;
    });
});
于 2013-06-05T06:55:28.687 回答
0

按钮将发布表单。
当您将使用按钮时,您必须返回 false 以停止表单提交
替代方案您可以使用客户端 html 输入按钮,如下所示。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
 $(function () {
        $("#btncl").click(function (e) {
            $("div").scrollTop(30);      
        });
    });
</script>

<body>
<form id="form1" runat="server">
<div style="border: 1px solid black; height: 150px; overflow: auto">
    <ul>
        <li>
            <img width="80px" style="margin-bottom: 5px;" height="70px" alt="" class="img_gallery"
                src="Images_slider/1.jpg" />
        </li>
        <li>
            <img width="80px" style="margin-bottom: 5px;" height="70px" alt="" class="img_gallery"
                src="Images_slider/2.jpg" />
        </li>

    </ul>
</div>
<br>
    <input type="button" value="Return the vertical position of the scrollbar" id="btncl">

</form>
于 2013-06-05T07:16:19.640 回答
0

使用 return false 或 e.preventDefault 和 e.stopPropagation 的组合。

从 jQuery 事件处理程序中返回 false 实际上与在传递的 jQuery.Event 对象上调用 e.preventDefault 和 e.stopPropagation 相同。

e.preventDefault() 将阻止默认事件的发生, e.stopPropagation() 将阻止事件冒泡, return false 将同时进行。请注意,此行为与普通(非 jQuery)事件处理程序不同,其中,值得注意的是,return false 不会阻止事件冒泡。

于 2013-06-05T07:29:54.617 回答