jquery应该如何来设置改变按钮input的onclick事件

  jquery应该如何来设置按钮input的onclick事件?比如开始时有个按钮: <input id=”prebt” type=”button” value=”上一页” onclick=”ToPage(2)”/>这行代码是在程序后台生成的,和Discuz!NT论坛源码中的做法一样,页面上所有的东西连同脚本都是由后台代码生成..然后用jquery.ajax加载到页面上来..其他的除了ie8不能显示之外..其它浏览器都正常.现在的问题是:要动态改变这个上一页按钮中onclick的函数.我自己是尝试了很多种方法,都没有做出来,下面列举的几个都是失败的例子:

  1.JavaScript code:

  

复制代码 代码如下:

  $(“#prebt”).unbind(“onclick”,function(){var p= $(“#nextbt”).parent();$(“#nextbt”).remove();

  p.append(“<input id=\”nextbt\” type=\”button\” value=\”编辑\” onclick=\”ToPage(14)\”/>”)});

  JavaScript code:

  $(“#prebt”).removeAttr(“onclick”);

  $(“#prebt”).attr(“onclick”,”ToPage(4)”);

  或者:

  $(“#prebt”).attr(“onclick”,”");

  $(“#prebt”).attr(“onclick”,”ToPage(4)”);

  2.JavaScript code:

  

复制代码 代码如下:

  $(“#prebt”).removeAttr(“onclick”);

  $(“#prebt”).click(function(){ToPage(4)}); //此句会导致死循环..不知是怎么回事..

  //我做的分页功能…这样写导致数据一直在乱跳,应该怎样来解决呢?

  实在是没有办法了,只能是在网上发布了相关的请求,有朋友问我,是否我要的效果就如下面的:

  

复制代码 代码如下:

  $(“#prebt”).unbind(“onclick”);

  $(“#prebt”).bind(“onclick”,”ToPage(4)”);

  其实我要的效果就是跟上面的一样的,但是上面的方法跟我原本的效果是差不多的,也是没办法执行,而且根本都绑定不上去.

  又有热心的网友给了一个我代码例子,说是对我有帮助,如下的细节:

  XML/HTML code:

  

复制代码 代码如下:

  <!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,即使是这样,但是还不是我原本所想要的效果。难道是真的没有方法可以实现了吗?

  最终我还是自己给想出了一个比较笨的方法,可以实现的,如下:

  

复制代码 代码如下:

  <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.但最后还是解决了我的难题。