javascript 和 css 不适用于 jsp 基于 ajax 的动态填充标签

标签 javascript jquery css ajax jsp

我通过 ajax 调用 jsp 动态填充选择标记。 似乎 style(css) 和 behavior(javascript) 不适用于新填充的选择标签,而同样适用于静态填充的选择标签。 选择标签代码是

<div id='state' > 
  <select name='state' data-placeholder='select Courses' style='width:350px;' class='chosen-select' multiple tabindex='6'>
    <option value='-1'>Nothing Here</option>  
  </select>  
</div>

上面的 div id 通过 ajax 调用 jsp 填充了相同的选择命名法。 定义所用选择样式的 css 文件是

<link rel="stylesheet" href="css/chosen.css">

用于选择行为的javascript文件是

<script src='//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js' type="text/javascript"></script>
<script src="js/chosen.jquery.js" type="text/javascript"></script>
<script type="text/javascript">
   var config = {
  '.chosen-select'           : {},
  '.chosen-select-deselect'  : {allow_single_deselect:true},
  '.chosen-select-no-single' : {disable_search_threshold:10},
  '.chosen-select-no-results': {no_results_text:'Oops, nothing found!'},
  '.chosen-select-width'     : {width:"95%"}
}
for (var selector in config) {
  $(selector).chosen(config[selector]);
}

并通过下面的代码调用state.jsp来填充select

function showState(str){
 ....
 ....
var url="state.jsp";
url +="?count=" +str;
xmlHttp.onreadystatechange = stateChange;
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}

  function stateChange(){   
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){   

  document.getElementById("state").innerHTML=xmlHttp.responseText;
  }   
  }

如何在动态创建标签的情况下保持 javascript 行为? 我看到了关于委托(delegate)、绑定(bind)、生活和继续讨论的答案,但我仍然感到困惑。请帮我处理这段代码

最佳答案

如果没有工作示例,很难确定,但我相信问题将源于事情发生的顺序。您的 js 在页面加载时运行,因此它会将样式和事件应用于当时找到的任何内容,这将是空的,因为您的 ajax 请求尚未返回数据。

因此,在使用 ajax 数据写入 DOM 后,您需要重新运行脚本以将样式和事件应用于新创建的元素。

关于javascript 和 css 不适用于 jsp 基于 ajax 的动态填充标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31080121/

相关文章:

javascript - 如何在JavaScript中删除字符串的最后一部分?

javascript - 悬停时淡化背景颜色

html - 防止在 `<a>` 标签前后换行

jquery - Jquery中的透明ListView

javascript - 仅使一部分可滚动而不是整个站点

javascript - 如何计算一个值并将其放置在 Chart.JS 条形图中的最后一个条形内?

javascript - 将服务器托管的 webapp 连接到本地 websocket

javascript - 如何将查询集从 Django 传递到 JavaScript 函数?

jquery - 我如何将 json 数据提供给 Golang 中的页面?

javascript - 为什么每个按钮只能工作一次?