首先截取相关主要js代码
1.
window.Search = function( param ) {
param = param instanceof Object ? param : {}; Base.apply( this , [param] ); for ( var prop in param ) {
this[prop] = param[prop];
}
      }.$extends( Base );
          
              var pt = Search.prototype;              pt.initJobareaLayer = function() {
              // btnJobarea1 为LZ疑问之处
              var param1 = {  openNodes : this.searchForm.btnJobarea1  };
         new JobareaLayer(param1); // 调用其他方法以上js是在已经封装好的,其中btnJobarea1为一个按钮元素
<input type="button" name="btnJobarea1" id="btnJobarea1"> 
现有需求,局部刷新html表单,根据一个<Select>下拉框的内容,然后在做动态请求响应,根据<Select>信息在后台动态拼接
HTML信息,动态返回response内容也就是上述的<input type="button" name="btnJobarea1" id="btnJobarea1"> ,把返回的字符串 innerHTML到一个<div id="function">此处为动态返回内容</div>问题是:
js 和 jquery 都是加载就绑定了html的 元素属性,所以动态返回的内容需要重新绑定元素属性
而jquery 有 livequery 可以动态绑定属性,但是达不到我现在的要求,因为问题刚开始给出的JS中 pt.initJobareaLayer = function() {
              // btnJobarea1 为LZ疑问之处
              var param1 = {  openNodes : this.searchForm.btnJobarea1  };由外部引用到当前html,所以已经在加载的时候对btnJobarea1进行了绑定,但是此时页面并没有此btnJobarea1的内容,只有在<Select>选择之后才能动态的根据返回信息innerHTML到<div>后才有,所以此时要重新对此绑定我不知道在这段JS里如何写,因为所有的事件都是已经写好的了,只要能把this.searchForm.btnJobarea1这个动态的获取然
就可以完成需求,但不知道怎么写,求JS高手帮帮忙问题描述有点多,希望大家能看的明白,在线等,很 急 啊

解决方案 »

  1.   

    你可以做个隐藏域,用个<input type="text" style="dispaly:none" id="hiddenpanel" value=<%=后台变量%> onchange="fn()" />
    在你后台改变页面内容的时候,为#hiddenpanel的属性value赋值,这样触发onchange事件,再达到你要的效果fn()
      

  2.   

    lz的排版令人沮丧..如果求方便, 直接用jquery的live方法根据类名进行方法绑定. 之后添加进来的任何此类名的元素都将被加上相应的方法. 
    如果不用jquery, 那么只好在生成DOM的时候 手动加上事件和属性了