$("$foo").keyup(function f1{
//do something
});
//以上部分不能作修改//这里如何写一个 keyup 处理, 使其在f1之前执行?

解决方案 »

  1.   

    更正下 $("$foo") 是 $("#foo")...
      

  2.   

    没有爹哪来儿子?javascript引擎可是单线程的
      

  3.   

    $("#foo").keyup(function f1{
    //do something
    });
    //以上部分不能作修改
    //下面如何改才能让 f2 在 f1 前执行
    $("#foo").keyup(function f2{
    //do something
    });
      

  4.   

    有一种模拟的方式,就是在foo元素下加个子元素,然后注册子元素的onclick事件,通过事件冒泡,子元素的事件会先执行,不过前提是你的foo元素能包含子元素。
      

  5.   

    jQuery 不懂,原理应该一样的!非 jQuery 版。L@_@K
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title> new document </title>
        <meta name="generator" content="editplus" />
        <meta name="author" content="[email protected]" />
        <meta name="keywords" content="" />
        <meta name="description" content="" />
    </head>
    <body>
    <script type="text/javascript">
    <!--
        document.body.onload = function() {
            alert("Original First!");
        };    var originalLoad = document.body.onload;    document.body.onload = function() {
            alert("Before Original First!");
            originalLoad();
        };
    //-->
    </script>
    </body>
    </html>
      

  6.   

    加个开关,这样更容易理解L@_@K
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title> new document </title>
        <meta name="generator" content="editplus" />
        <meta name="author" content="[email protected]" />
        <meta name="keywords" content="" />
        <meta name="description" content="" />
    </head>
    <body>
    <script type="text/javascript">
    <!--
        document.body.onload = function() {
            alert("Original First!");
        };    if (confirm("是否确认插入新的提示?"))
        {
            var originalLoad = document.body.onload;
            document.body.onload = function() {
                alert("Before Original First!");
                originalLoad();
            };
        }
    //-->
    </script>
    </body>
    </html>
      

  7.   

    >>jQuery 不懂,原理应该一样的!
    这个知道,就是想知道jquery怎么弄>>为什么要用这种思路解决问题?不解中
    有这种需求是显而易见的, 比如在某个已有的框架上工作,里面有事件处理了, 而你要加一个, 又要在之前执行
      

  8.   

    晕,不懂 JS,只会 jQuery 么?仍然不懂 jQuery,以下代码是我猜的,lz 试试看吧L@_@K
    $("$foo").keyup(function f1{
        //do something
    });
    var originalHandler = $("$foo").keyup;
    $("$foo").keyup(function f2{
        //do something
        originalHandler();
    });
      

  9.   

    >>晕,不懂 JS,只会 jQuery 么?晕,就是不熟悉 jquery 才问这个问题,项目的框架已经用jquery了,问题就是我怎么在已存在jquery绑定上叠加事件
    $("#foo").keyup 这样得到的是用来绑定的函数,一个"添加器"
    而且jquery的事件处理应该是由一个数组来维护的队列, 并顺序执行
      

  10.   

    $("#foo").keyup(function f1(){
    //do something
      alert("old");
    });$("#foo").unbind();
    $("#foo").keyup(function f2(){
        alert("1");
    });
    $("#foo").keyup(function f1(){
        alert("old");
    });这样试试