比如开始时有个按钮<input id="prebt" type="button" value="上一页" onclick="ToPage(2)"/>这行代码是在程序后台生成的.和Discuz!NT论坛源码中的做法一样.页面上所有的东西连同脚本都是由后台代码生成..然后用jquery.ajax加载到页面上来..其他的除了ie8不能显示之外..其它浏览器都正常..现在的问题是 要动态改变 这个上一页按钮 中 onclick的函数..我尝试了各种办法...都做不出来..如下例举几个..都是失败的: 
$("#prebt").unbind("onclick",function(){var p= $("#nextbt").parent();$("#nextbt").remove();
 p.append("<input id=\"nextbt\" type=\"button\" value=\"编辑\" onclick=\"ToPage(14)\"/>")}); 
$("#prebt").removeAttr("onclick");
$("#prebt").attr("onclick","ToPage(4)");或者:
$("#prebt").attr("onclick","");
$("#prebt").attr("onclick","ToPage(4)");
$("#prebt").removeAttr("onclick");
$("#prebt").click(function(){ToPage(4)}); //此句会导致死循环..不知怎么回事..
//我做的分页功能...这样写导致数据一直在乱跳...
知情者给个正解...谢谢了...弄了五个多小时..实在想不出还有什么法子了

解决方案 »

  1.   

    LZ是不是要这样的效果啊?
    $("#prebt").unbind("onclick");
    $("#prebt").bind("onclick","ToPage(4)");
      

  2.   


    <!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>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
    <script type="text/javascript">
    //<![CDATA[
    function toPage(id){alert(id);}
    $(function(){
    $('#btndemo').removeAttr('onclick').unbind('click').click(function(){
    toPage(1);
    })
    })
    //]]>
    </script></head>
    <body>
    <input id="btndemo" type="button" value="click" onclick="toPage(4)" />
    </body>
    </html>以上ie8,单击时候结果为1
      

  3.   

    楼上给的也弄不出来....我自己写了个...<span id="prespan"><input id="prebt" type="button" value="上一页" onclick="ToPage(2)"/></span>然后后台程序自自动把prespan中的内容替换掉..
     $('#prespan').empty();
    $('#prespan').append("<input id=\"prebt\" type=\"button\" value=\"上一页\" onclick="\ToPage(4)\"/>");虽然没有用到设置 onclick...还是能解决我的难题...
      

  4.   

    其实我想先不定义onclick属性,元素建立后利用bind()上去,想换的时候,再unbind().bind(),这样肯定是可行的。
      

  5.   

    我告诉你们 我写一个 保证你能用 
    我保证
    $("#prebt").attr("onclick",function(){ToPage(4)});
      

  6.   

    在来补充一个 最好不要用 $("#prebt").attr("onclick",function(){ToPage(4)});
    最好 
    $(document).ready(function(){$("#prebt").click(function(){ToPage(4)});
    });
    或者 .bind("onclick",function(){ToPage(4)});