JQuery - 动态添加Html后,如何使CSS生效,JS代码可用?

今天在开发JQuery Mobile程序时候,需要从服务器取得数据,随后显示在页面上的Listview控件中,数据完整获取到了,也动态添加到Listview控件中,但是数据对应的CSS没有任何效果了,而且操作数据的JS代码也不好使了!!!

一,使动态加载数据对应的CSS生效。

  //刷新Listview,使CSS生效
  $("#控件ID").listview("refresh");

在加载完数据代码之后,加入上面代码,把“控件ID”换成你的真正的Listview控件ID就可以了!其它控件暂时没有尝试,但是Listview肯定可以的!!

下面是我的动态添加数据和使对应CSS生效完整代码:

 1                     var dataArr = responseObject.obj;
 2
 3                     if (dataArr.length > 0) {
 4
 5                         var tempHtml = "";
 6
 7                         for (var i = 0; i < dataArr.length; i++) {
 8                             tempHtml += ‘<li>‘;
 9                             tempHtml += ‘<a href="#" class="notice-data" id="‘ + i + ‘" onclick="GoDetailPage(this.id)">‘;
10                             tempHtml += ‘<img src="../../img/u167.png" style="margin-left:5px;margin-top: 18px">‘;
11                             tempHtml += ‘<h2 style="margin-left: -35px">‘ + dataArr[i].title + ‘</h2>‘;
12                             tempHtml += ‘<p style="margin-left: -35px">‘ + dataArr[i].depart + ‘</p>‘;
13                             tempHtml += ‘<p style="margin-left: 75%;margin-top:-35px">‘ + dataArr[i].date + ‘</p>‘;
14                             tempHtml += ‘</a>‘;
15                             tempHtml += ‘</li>‘;
16                         }
17
18                         //更新Listview中的html内容
19                         $("#notice-data-list").html(tempHtml);
20
21                         //刷新Listview,使CSS生效
22                         $("#notice-data-list").listview("refresh");
23
24                     }

二,如何使动态添加数据对应的JS生效

我的需求可能比较简单,就是点击事件,在这个事件里面处理一些事物。看上面的第9行代码,里面有一个JS事件“onclick”,这样使用最原始的JS代码就可以了!下面是对应的函数代码:

       //访问详细信息页面
        function GoDetailPage(id) {

            alert(id);

            $.mobile.changePage("noticeDetail.html");
        }

上述代码均测试过,可以正常工作!可能我的解决办法不够好,如果您有更好办法,希望您能告诉我,谢谢![email protected]

参考:

https://blog.csdn.net/u012702547/article/details/45130615

原文地址:https://www.cnblogs.com/sunylat/p/9734920.html

时间: 2024-08-29 14:55:28

JQuery - 动态添加Html后,如何使CSS生效,JS代码可用?的相关文章

jquery学习记录一:jquery动态添加html元素后设置其绑定事件

1. jquery动态添加html元素(例如:) <div id="testdiv"> <ul></ul> </div> 假设我们要给ul动态添加的<li>绑定click事件形成如下结果 <div id="devices_div"> <ul> <li name="apple">apple</li> <li name="pea

给Jquery动态添加的元素添加事件

给Jquery动态添加的元素添加事件 我想很多人都会向我一样曾经 被新元素的事件绑定困惑很久也就是在页面加载完成后给元素绑定了事件,但又新增加的元素上却没有绑定任何事件. js的事件监听跟css不一样,css只要设定好了样式,不论是原来就有的还是新添加的,都有一样的表现.而事件监听不是,你必须给每一个元素单独绑定事件. 常见的例子是处理表格的时候.每行行末有个删除按钮,点了这个能够删除这一行. <table>    <tbody>        <tr>        

[转载]给Jquery动态添加的元素添加事件

原文地址:给Jquery动态添加的元素添加事件作者:小飞侠 我想很多人都会向我一样曾经 被新元素的事件绑定困惑很久也就是在页面加载完成后给元素绑定了事件,但又新增加的元素上却没有绑定任何事件. js的事件监听跟css不一样,css只要设定好了样式,不论是原来就有的还是新添加的,都有一样的表现.而事件监听不是,你必须给每一个元素单独绑定事件. 常见的例子是处理表格的时候.每行行末有个删除按钮,点了这个能够删除这一行. <table> <tbody> <tr> <td

用Jquery动态append方式加入标签时Css样式丢失的解决方法

一般在Jquery中会用下面的方式来添加新标签: var obj = "<fieldset data-role='controlgroup' data-type='vertical' data-role='fieldcontain'> <input id='menu0" type='checkbox'/><label for='menu0'> 复选框 </label> </fieldset>";  //按个人要求拼接

Jquery 动态添加删除元素 用js添加的元素无法删除问题

用jquery方法的绑定侦听和销毁来解决动态div的增加删除: 正确代码: <script type="text/javascript" > $(document).ready(function(){  bindListener(); }) function addimg(){  $("#mdiv").append('<div ><input type="file" name="img[]" /&

jquery动态添加删除div--事件绑定,对象克隆

我想做一个可以动态添加删除div的功能.中间遇到一个问题,最后在phpchina问答区版主的热心帮助下解答了(答案在最后)        使用到的jquery方法和思想就是:事件的绑定和销毁(unbind),另外还可以使用clone,通过克隆可以很好的解决这个问题          相关描述如下 功能:点击增加,自动添加一个iptdiv 点击 iptdiv后的 X 自动删除当前div 问题:默认存在的(也就是页面加载进来的)的那个iptdiv 后的 X 点击有效,可以删除当前 iptdiv  但

Jquery动态添加输入框

jquery 动态添加输入框的两种方法. 1.展示页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" conte

jquey学习2之jquery动态添加页面片段

第一个方法:append()方法 [1]$(selector).append(content)//向匹配的所有标签中的内容末尾处添加Html代码,会编译成页面显示. 1 <html> 2 <head> 3 <script type="text/javascript" src="/jquery/jquery.js"></script> 4 <script type="text/javascript&quo

jquery动态添加删除一行数据

<html> <head> <title>添加.删除一行</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="../js/jquery-1.9.1.js"></script>