JQuery专栏之四————利用append()方法在jQuery中动态定义和生成EasyUI控件。

4. 利用append()方法在jQuery中动态定义和生成EasyUI控件。

前面几个实例采用HTML标签语句定义控件,但有时也有一些控件由于事先是不确定的,需要在程序运行过程中动态生成,为此本例介绍append()方法,在javascript语句中动态定义EasyUI控件,具体方法和程序如下。

①在页面预留一个层,取名为main。所有其他动态生成的控件均嵌套在这个层之内。

<div id="main" style="margin:2px 2px 2px 2px;">

②在<script>…</script>之间编写程序。先定义一个变量(如str),把需要生成控件的HTML语句保存到这个变量中,然后使用append()方法添加到相应的父类容器中去。

例如,在main层中添加一个表单类(panel)控件的语句如下:

       var str='<div class=“easyui-panel" id="myForm1" title="&nbsp;学生信息编辑" style="position:relative; background:#fafafa;" data-options="iconCls:\'panelIcon\'" >';

       $("#main").append($(str));  //在main容器下嵌入一个表单控件myForm1

同样地,在表单myForm1中添加一个fieldset类控件的语句如下:

str='<fieldset id="myFieldset1" style="position:absolute; top:10px; left:10px; width:300px; height:210px; padding: 2px 0px 0px 16px; border:1px groove" ><legend>基本信息</legend></fieldset>';

       $("#myForm1").append($(str));  //在myForm1容器下嵌入一个fieldset字段集控件

推而广之,各类控件都可以通过这种方式动态生成。又如在myFieldset1字段集容器中添加两个label和textbox文本框控件,其语句如下:

str='<label id="stuid_label">学号:</label>';

str+='<div id="stuid_div"><input class=“easyui-textbox" type="text" id="stuid"></input></div>\n';

str+='<label id="stuname_label">姓名:</label><div id="stuname_div"><input class=“easyui-textbox" type="text" id="stuname"></input></div>\n';

$("#myFieldset1").append($(str));

③与实例3相同,在动态添加和生成控件之后,可以使用jQuery语句设置各个控件的属性。

本例完整代码见程序example04_appendcontrols.jsp中。

主要知识点:

动态添加控件的方法:$("#parentid").append($(str));。这里,parentid为父类容器的ID,str变量为符合HTML语法的控件定义语句,str需要用括号和$引导。

思考题:

1.在动态定义各个控件时,有哪些代码具有相似性或重复性?如何使用函数动态定义控件?

2.构造一个函数用于动态定义textbox控件,这个函数需要几个参数?参考下列API链接地址,查看相关控件的属性。

http://www.jEasyUI.com/demo/main/

http://www.jEasyUI.com/documentation/index.php

猜你喜欢

转载自blog.csdn.net/qq_42618969/article/details/89145436