jQuery方法不是永久性的?

时间:2012-03-01 10:29:20

标签: jquery methods

我正在运行一些jQuery / JavaScript事件/方法,它们只工作了一段时间,之后整个文档重新获得了它以前的内容。怎么样?

<html>
  <head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
    <script type="text/javascript">
      $(document).ready(function(){
        //jquery
        $("#f").submit(function(){
            $("h3").toggle();
            //alert("hello");
        });
        $("button").click(function(){
            alert("ZZZZZ");
        });
      });
    </script>
    <title>Catalog Nova Grup</title>
  </head>
  <body>
    <center>
      <h3 style="color:#00F">Catalog Nova Grup</h3>
    </center>
    <form id="f">
       <select id="s1">
         <option>---</option>
         <option>ZZZ</option>
       </select>
       <select id="s2"></select>
       <select id="s3"></select>
       <input type="submit" id="sb" />
     </form>
     <button>ZZZ</button>
  </body>
</html>

2 个答案:

答案 0 :(得分:3)

您可能需要从事件处理程序中return false或使用e.preventDefault(),其中e是传递给事件处理程序的事件对象。

例如,在附加到submit元素的<form>处理程序中,您应该执行以下任一操作:

$("#f").submit(function() {
    //do your stuff

    return false //stop browser following link
});

或:

$("#f").submit(function(e) {
    e.preventDefault(); //stop browser following link

    //do your stuff
});

修改 发生的事情是浏览器正在提交表单,默认情况下导致页面重新加载

答案 1 :(得分:2)

由于表单正在提交,请使用return false;将其停止。或者,将一个参数添加到提交匿名函数并调用.preventDefault()

$(document).ready(function () {
    //jquery                      
    $("#f").submit(function () {
        $("h3").toggle();
        //alert("hello");
        return false;
    });
    $("button").click(function () {
        alert("ZZZZZ");
    });
});