發表文章

目前顯示的是 5月, 2019的文章

jQuery Mobile 页面事件

jQuery Mobile 页面事件 在 jQuery Mobile 中与页面打交道的事件被分为四类: Page Initialization - 在页面创建前,当页面创建时,以及在页面初始化之后 Page Load/Unload - 当外部页面加载时、卸载时或遭遇失败时 Page Transition - 在页面过渡之前和之后 Page Change - 当页面被更改,或遭遇失败时 如需关于所有 jQuery Mobile 事件的完整信息,请访问我们的  jQuery Mobile 事件参考手册 。 jQuery Mobile Initialization 事件 当 jQuery Mobile 中的一张典型页面进行初始化时,它会经历三个阶段: 在页面创建前 页面创建 页面初始化 每个阶段触发的事件都可用于插入或操作代码。 事件 描述 pagebeforecreate 当页面即将初始化,并且在 jQuery Mobile 已开始增强页面之前,触发该事件。 pagecreate 当页面已创建,但增强完成之前,触发该事件。 pageinit 当页面已初始化,并且在 jQuery Mobile 已完成页面增强之后,触发该事件。 下面的例子演示在 jQuery Mobile 中创建页面时,何时触发每种事件: 实例 $(document).on( "pagebeforecreate" ,function(event){ alert("触发 pagebeforecreate 事件!"); }); $(document).on( "pagecreate" ,function(event){ alert("触发 pagecreate 事件!"); }); $(document).on( "pageinit" ,function(event){ alert("触发 pageinit 事件!") }); 亲自试一试 jQuery Mobile Load 事件 页面加载事件属于外部页面。 无论外部页面何时载入 DOM,将触发两个事件。第一个是 pagebeforel

事件函数function(e){}中e的问题

e可加可不加,如果后面需要获取操作的信息 就要加e 如果不需要,只是完成一个事件,就可以不加e 通过 $().unbind('click').click(function(e){......}) ,这种方式触发的点击事件中, e 代表的含义: e就是element 或者可以理解为是一个object, 通过e.target可以得到dom对象的引用,即把dom元素传给jquery选择器. 例子: Html片段: <div>     <span class="DELETE" id="spanid" value="spanVal()">span删除</span> </div> JQuery片段: <script type="text/javascript">         $(function(){                          $(".DELETE").click(function(e){                 console.log(e.target);                 console.log(e.target.id);                 console.log(e.target.textContent);                                              })         })  </script> 执行结果: <span class="DELETE" id="spanid" value="spanVal()">span删除</span> spanid span删除 ---------------------  作者:qq_40391559  来源:CSDN  原文:https://blog.csdn.net/qq_40391559/article/details/81112562  版权声明:本文为博主原创文章,转载请附

e.target获取元素id

e.target.id。 e.target表示DOM对象 $ ( 'body' ). on ( 'click' , function ( e ){ alert ( e . target . id ); });

jQuery Mobile中jQuery.mobile.changePage方法使用详解

jQuery.mobile.changePage方法用的还是很多的。作为一个老手,有必要对jQuery mobile中实用方法做一些总结。系列文章请看jQuery Mobile专栏。jquery.mobile.changepage是过时的jQuery Mobile 1.4.0及将被删除在1.5.0。使用pagecontainer部件的change()法代替。 注意该方法是在内部使用的页面加载和转换作为一个结果,点击一个链接或提交表单时。跳转外部页面全部没有效果,必须是内部的DIV页面才有效果。 jQuery.mobile.changePage( to [, options ] )参数解释说明: to:字符串类型或Object类型,将要跳转到的目的页面。 options:可选参数,Object类型。其对象内的属性解释如下: allowSamePageTransition:布尔类型,默认为false。默认情况下,changepage()忽略请求改变当前的活动页面。设置为true,允许请求执行。注意的一些页面转换到另一个页面(changepage请求的页和页是不同的),他们可能不会如预期的动画。 changeHash:布尔类型,默认为true。设置为true时地址栏中的Hash更新会创建一个新的浏览器历史记录的影响。设置为false,传入的页面在浏览器历史替换当前页面,用户导航无法通过浏览器的“后退”按钮回到上一个页面。 data:Object类型或字符串类型,默认为 undefined。跳转页面发送ajax请求的参数。 dataUrl:字符串类型,默认为 undefined。完成页面转换时要更新浏览器地址的URL地址。如不特别指定,则使用页面page元素的data-url属性值。 pageContainer:(jQuery选择器,默认:$.mobile.pageContainer)指定应该包含页面的容器。 reloadPage:布尔类型,默认false。强制刷新页面, 即使当页面容器中的dom元素已经准备好时,也强制刷新。只在changePage()的to参数是一个可用地址的时候。 reverse:布尔类型,默认false。设定页面转场动画的方向,设置为true时将导致反方向的转场。 role:字符串类型,默认为 undefined。显示页面的时

jQuery Mobile页面跳转导致css、js失效原因及解决方法

昨天做项目画面的mock up 的时候,自己做好的画面在浏览器端显示很正常,但是和别人做的画面整合到一起,存在页面跳转的时候,就产生了很奇怪的现象:css完全失效了!!! 后来查了一些资料,发现了其中的奥秘。 因为是做mock up所以css全部定义在head> <style type="text/css">……..</style> </head>中,JQM页面跳转的时候默认是ajax方式的,也就是说,只有第一次请求页面,$(document).ready();才会触发,而不是每一次跳转都会触发ready事件。 这就导致由a画面跳转到b画面的时候,浏览器只会只会把b.html中<page>内的内容加载进dom,而<page>外的代码都不会加载,所以导致在<page>外的js和css都失效了。 举个栗子:一般的.html文件结构如下: <!DOCTYPE html> <html> <head> <meta>...</meta> <link>...</link> <script>...</script> <style type="text/css"> ...... </style> </head> <body> <div id="#####" data-role="page"> ........ </div> </body> </html> 按照上文说的,如果只是加载<page>标签中的内容的话,那么<head>部分定义的<script>...</script>以及<style type="text/css"></style>部分的内容都不会被浏览器加载进去,这就是为啥css和js都失效的原因。 下面提供几种解决办法: ①将b页面需要用到的css以及js放在<page

jquery mobile ajax页面跳转出现(error load page的错误)及js与css失效的说明和处理

简要说明 jqm的ajax页面跳转,实际上是通过一个ajax请求,将目标页面的 <div data-role="page" > </div>以内的dom结构复制过来 假如有a.html,b.html二个页面,a的源页面,b是目标页面 1.可以知道a页面必然加载好jquery mobile的 js和css资源,如下所示     a.html     <head>     <meta >     <link rel="stylesheet" href="jqm.1.4.2/jquery.mobile-1.4.2.min.css" />          <script type="text/javascript" src="jqm.1.4.2/jquery-1.9.1.min.js"></script>        <script type="text/javascript" src="jqm.1.4.2/jquery.mobile-1.4.2.min.js"></script>     ...     </head>     <body>     ...     </body> 这个是a页面的. 2.如果b.html做为目标页面,则不需要加载jquery mobile的js和css资源,跳转并没有实际发生,还是在a.html,只不过把b.html的dom复制到了a.html,因此b.html的结构应该是这样的     b.html     <head>     <meta>     ...不需要jquery mobile的库     </head>     <body>     <!--b.html的dom-->     </body> 3.前面我们知道它只会加载b.html的 <div data-role="page">&