jquery mobile提供了一种可折叠的组件--data-role="collapsible",这种组件可以通过点击折叠块头部来展开/折叠块内的内容,详细组件说明可参考w3cshool可折叠块

在做一个小项目的时候,我有一个模块用到了可折叠块这个组件:初始页面时collapsible的标题是空的,只有用户在collapsible下面的文本框输入内容后,标题会跟文本框内容同步。

如下图所示,初始界面时,collapsible标题为空,只有在“险种”文本框中输入内容,collapsible标题才会产生变化。

对应的HTML代码如下:

  1. <div data-role="collapsible" id="collapsible">
  2. <h3 class="h3">&nbsp</h3>
  3. <div class="ui-field-contain" data-controltype="textinput">
  4. <label for="insurance_name">
  5. 险种
  6. </label>
  7. <input name="insurance_name" value="" type="text">
  8. </div>
  9. <div class="ui-field-contain" data-controltype="textinput">
  10. <label for="insurance_company">
  11. 投保公司
  12. </label>
  13. <input name="insurance_company" value="" type="text">
  14. </div>
  15. <div class="ui-field-contain" data-controltype="dateinput">
  16. <label for="insurance_date">
  17. 投保日期
  18. </label>
  19. <input name="insurance_date" value="" type="date">
  20. </div>
  21. <div class="ui-field-contain" data-controltype="textinput">
  22. <label for="insurance_year">
  23. 年期
  24. </label>
  25. <input name="year_period" value="" type="text">
  26. </div>
  27. <div class="ui-field-contain" data-controltype="textinput">
  28. <label for="insurance_cost">
  29. 年保费
  30. </label>
  31. <input name="year_cost" value="" type="text">
  32. </div>
  33. <div class="ui-field-contain" data-controltype="textarea">
  34. <label for="insurance_comment">
  35. 备注
  36. </label>
  37. <textarea name="insurance_comment"  placeholder=""></textarea>
  38. </div>
  39. </div>
  40. </div>

要想监听“险种”文本框值变化,就需要用到input和propertychange这两个事件,这两个事件是监听内容变化的。

  1. dom.bind('input propertychange', function() {
  2. //do something
  3. });

只要绑定好这两个内容变化事件,然后在事件体里面编写collapsible标题赋值代码即可搞定问题。

collapsible标题对应前面HTML代码中的"<h3></h3>"元素,但是通过$("h3").html(dom.val())这种形式给它赋值是错误的,这样会导致collapsible样式乱套。因为jquerymobile在上面html基础上动态创建了别的节点元素和样式,最终才会有这样折叠的效果。

可以通过浏览器查看最终的页面元素,你就会发现它与原本的HTML有很大的变化。


 上图<span class="ui-btn-text"></span>才是现实标题内容的节点。

所以要想给collapsible标题赋值,就需要找到class为ui-btn-text的节点。

  1. dom.parents("#collapsible").find(".h3").find(".ui-btn-text").html(dom.val());

完整的javascript代码应该这样来写:

  1. $(document).on("pageinit", "#insurer_list_page", function() {
  2. var dom = $("#collapsible-set").find("input[name='insurance_name']");
  3. dom.bind('input propertychange', function() {
  4. var value = dom.val();
  5. if($.isNull(value)){
  6. //输入内容为空,则以空格填充
  7. value = "&nbsp;";
  8. }
  9. dom.parents("#collapsible").find(".h3").find(".ui-btn-text").html(value);
  10. });
  11. });

jquerymobile之collapsible可折叠块标题内容动态显示的更多相关文章

  1. php用正则表达式获取网站的标题内容

    已知网站的网址,用php获取网站的内容. 编写正则表达式. 用preg_match_all函数获取标题内容. $url='http://www.m-ivi.com'; $content=file_ge ...

  2. php框架tp3.2.3和js写的微信分享功能心得,分享的标题内容图片自定义

    https://blog.csdn.net/weixin_42231483/article/details/81585322 最近用PHP的tp3.2.3框架和js写的微信分享功能心得,分享的标题内容 ...

  3. LabVIEW(十二):VI本地化-控件标题内容的修改

    一.对于一般LabVIEW的学习,很少遇到本地化的问题但是我们经常会遇到界面控件标题的显示问题.由于各个技术领域的专业性,往往用户对VI界面的显示有自己的要求,其中就包括控件的标题问题,这可以理解成本 ...

  4. 织梦DedeCMS使用SQL批量替换文章标题内容

    在使用织梦DedeCMS的过程中,出于伪原创或者其他的原因,我们需要对文档的内容.标题.描述等等进行同义词或者其他的替换.这个就是一个简单的织梦SQL语句操作的问题,No牛网在织梦DedeCMS常用S ...

  5. iOS 标题内容待定

    UITableView: UITableViewCell的声明文件.所包含的: UIView控件(contentView,作为其它元素的父控件) -- 容器 两个UILabel控件( textLabe ...

  6. 提取位于<title>...</title>内的文本标题内容

    #vim title.txt <title>nhlinkin</title> # cat title.txt  | sed 's:.*<title>\([^< ...

  7. 编辑bbs文章 获取前端标题内容 和前端内容的方法

  8. jQuery Mobile基础

    1.安装 在<head></head>标签里边写入以下内容 jQuery Mobile CDN: <head> <meta charset="utf ...

  9. JSP丶新闻发布会系统

    新闻发布会 项目所需要的一些实现类 servlet 工具类 1.实现登录功能 前端界面的代码 <form action="<%=path %>/LonginServlet& ...

随机推荐

  1. xml操作-Nested exception: org.xml.sax.SAXParseException: White spaces are required between publicId and systemId. 异常处理

    异常如下: org.dom4j.DocumentException: Error on line 2 of document file:///D:/workspaces/struts2/lesson0 ...

  2. Ajax——异步基础知识(三)

    封装异步请求 1.将函数作为参数进行使用 2.因为获取数据是在一个注册事件中获取的,所以只有事件触发的时候才会调用此函数 <!DOCTYPE html> <html lang=&qu ...

  3. [Windows Server 2012] IIS自带FTP配置方法

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:IIS自带FT ...

  4. 12--c完数/最大公约数/最小公倍数/素数/回文数

    完数/最大公约数/最小公倍数/素数/回文数 2015-04-08 10:33 296人阅读 评论(0) 收藏 举报  分类: C/C++(60)  哈尔滨工业大学(8)  版权声明:本文为博主原创文章 ...

  5. 【sqli-labs】 less47 GET -Error based -String -Order By Clause(GET型基于错误的字符型Order By从句注入)

    http://192.168.136.128/sqli-labs-master/Less-47/?sort=1 改变sort的值,结果仍然是order by 1的结果 http://192.168.1 ...

  6. (转)Hadoop入门进阶课程

    http://blog.csdn.net/yirenboy/article/details/46800855 1.Hadoop介绍 1.1Hadoop简介 Apache Hadoop软件库是一个框架, ...

  7. 关于WEB开发下面DIV层被OCX控件拦住问题

    控件分为有窗口控件与无窗口控件,无窗口控件很好办,如flash控件,可以通过添加wmode属性来解决挡住DIV层这个问题,添加的代码如下: 解决无窗口控件挡住DIV: 1 <param  nam ...

  8. JS获取图片的原始宽度和高度

    页面中的img元素,想要获取它的原始尺寸,以宽度为例,可能首先想到的是元素的innerWidth属性,或者jQuery中的width()方法.如下: <img id="img" ...

  9. LINUX - 硬链接 软连接

    ---------------------------------------------------------------------------------------------------- ...

  10. cf 337 div2 c

    C. Harmony Analysis time limit per test 3 seconds memory limit per test 256 megabytes input standard ...