`

jquery和css的一些学习心得(一)

 
阅读更多

 

最近由于项目开发需要,学习一些jquery的东东,有一些小东西总结一下,也算是一个小笔记。

 

1). 在js对象中灵活添加css样式有两种方式,一种在在css中写一个样式对象,然后在js的对象方法中通过addClass(..)的方式把这个样式添加进来,另一种方式是直接在js的function中调用函数 .css(..)的方式添加样式。

例如:

 index.html文件:

 

...	
<div id="container">
		<div id="header">
			<h1>StarTrackr!</h1>
    </div>
		<div id="content">
			<h2>
				Image Gallery
			</h2>
      <div id="ajaxInProgress"></div>
      <div id="gallery">
        <img src="../../images/beau_200.jpg" alt="" />
        <img src="../../images/fader_200.jpg" alt="" />
        <img src="../../images/kellie_200.jpg" alt="" />
        <img src="../../images/mofat_200.jpg" alt="" />
        <img src="../../images/johnny_200.jpg" alt="" />
        <img src="../../images/glenda_200.jpg" alt="" />
      </div>
</div>
</div>
....
     

 

 gallery.css文件:

 

#gallery {
  background-color:#94C5EB;
  border:1px solid #015287;
  height:103px;
  text-align:center;
  position: relative;
  overflow: hidden;
  margin-bottom: 10px;
}

#gallery img { 
  width: 97px; 
  height: 97px; 
  float:left; 
  border:1px 
  solid #fff; 
  padding:2px;
}


h2 {
  clear: both;
}

#ajaxInProgress{
	width:610px;
	height:13px;
	margin-top:-5px;
	padding: 2px 0;
}
.progress {
  background: #fff url(progress.gif) no-repeat center right;
}
   

 js文件:

 

$(document).ready(function(){
  $('#ajaxInProgress')
    .ajaxStart(function() { 
      $(this).addClass('progress'); 
    })
    .ajaxStop( function(){ 
      $(this).removeClass('progress'); 
    });
  GALLERY.load();
});

var GALLERY = {
  container: '#gallery',
  url: 'getImages',
  delay: 5000,
  
  load: function() {
    var _gallery = this;

    $.ajax({ 
      type:"get", 
      url: this.url, 
      beforeSend: function() {
        // fade out and remove the old images
        $(_gallery.container)
          .find('img')
          .fadeOut('slow', function() {
            $(this).remove();
          });
      },
      success: function(data){ 
        var images = data.split('|');
        $.each(images, function() {  
          _gallery.display(this);
        });
      },
      complete: function() {
        setTimeout(function() {
          _gallery.load();
        }, _gallery.delay);
      }
    });
  },
  display: function(image_url) {
    $('<img></img>')
      .attr('src', '../../images/' + image_url)
      .hide()
      .load(function() { 
        $(this).fadeIn();
      })
      .appendTo('#gallery');
  }
}

 注: 也可以直接通过调用js函数 .css(...);直接设置js对象的样式:

 

$(document).ready(function(){
  $('#ajaxInProgress')
    .ajaxStart(function() { 
      $(this).css( background: #fff url(progress.gif) no-repeat center right;); 
    })
    .ajaxStop( function(){ 
      $(this).css( background: inherit;); 

    });
  GALLERY.load();
});
二:js中对html中标签属性进行对象化操作,采用$(':标签属性名')的方式:
...     
   <form action="">
          <div>
            <label for="name">Name:</label>
            <input name="name" id="name" type="text"/>
          </div>
          <div>
            <label for="email">Email:</label>
            <input name="email" id="email" type="text"/>
          </div>
          <div>
            <label for="website">Web site:</label>
            <input name="website" id="website" type="text"/>
          </div>   
          <div>
            <input type="radio" name="sex" value="male">Male</input>
            <input type="radio" name="sex" value="female">Female</input> 
          </div>
          <div>
            <label for="comment-text">Comment:</label>
            <textarea rows="10" cols="50" name="comment-text" id="comment-text"></textarea>
          </div>    
          <div>
          	<input type="submit" value="Submit" />
        	</div>
        </form>
...

 $(document).ready(function(){
  $(':submit').click(function(e) {
    $(':text').each(function() {
      if($(this).val().length == 0) {
        $(this).css('border', '2px solid red');
      }
    });
    e.preventDefault();
  });
});

 

form div {

margin: 0 0 10px 160px;
}


form div label {
	width: 140px;
	float: left;
	text-align: right;
	margin: 5px 20px 0 -160px;
}

 

 

三:

     js中的 .blur(  function(){

    ...});  这个是鼠标移开标签对象时触发事件函数。

    .foucs( function(){

      ...});  这个是鼠标点击标签对象(焦点事件)时的事件函数。比如:

 

 

$(document).ready(function(){
  $(':input').blur(function() {
    if($(this).val().length == 0) {
      $(this)
        .addClass('error')
        .after('<span class="error">This field must be filled in!</span>');
    }
  });
  $(':input').focus(function() {
    $(this)
      .removeClass('error')
      .next('span')
      .remove();
  });
});

 其中的 ' :input ' 是input属性标签对象。  

 

四:form表单提交和输入框是否为空验证: $("form").submit( function(){....});

   $(...).find('标签属性名')可能找到同类属性的很多标签对象,然后通过.each( function(){...});    对遍历到的各个对象进行循环逻辑处理。

   当然还可以利用jquery官网提供的验证插件进行表单验证:jquery.validate.min.js

 

 

(document).ready(function(){
  $("form").submit(

      function(){
  	var error = false;
  	$(this).find(":text").each(function(){
  		if ($(this).val().length == 0) {
  			alert("Textboxes must have a value!");
  			$(this).focus();
  			error = true;
  			return false; // Only exits the “each” loop
  		}
  	});
  	if (error) {
  		return false;
  	}
  	return true;
   }
   );

});
 

五: textarea标签中对输入字数的限制显示和字数自动递减显示(触发按键事件):

 

       <form action="">
          <div>
            <label for="name">Name:</label>
            <input name="name" id="name" type="text"/>
          </div>
          <div>
            <label for="comment-text">Comment:</label>
            <textarea rows="7" cols="30" name="comment-text" class="maxlength" id="comment-text"></textarea>
          </div>    
          <div>
          	<input type="submit" value="Submit" />
        	</div>
        </form>

 

 

$(document).ready(function(){
 
 $('.maxlength')
    .after("<span></span>")
    .next()
    .hide()
    .end()
    .keypress(function(e) {
      var current = $(this).val().length;
      if(current >= 130) {
        if(e.which != 0 && e.which != 8) {
          e.preventDefault();
        }
      }
      $(this).next().show().text(130 - current);
    });
});

   效果如下:


 

 

六:获取标签的value值得方法:

   比如:

 $('input').each( function(){

  $(this).val();

});

 

七:

  1).contents() 没有参数, 返回每一个元素的子元素的内容,包括text和comment。

  2) .replaceWith(“。。”); 用新的标签元素内容或者函数取代老的content或者函数。可能是an HTML string, DOM element, or jQuery object.

  3) .toggleClass('标签样式');增加或者取消css样式对象。 

  4) DOM:文档对象模型 。它可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。

 

八:

   js中对函数的调用入口可以写成:$(doucument).ready(function(){

                         .....//直接调用别的js函数

                  });

  也可以直接:

    $().ready( function(){

           ....//直接调用别的js函数

});

 

这些函数就是在加载html页面时就会执行的脚本函数。

 

  • 大小: 14.7 KB
  • 大小: 14.9 KB
分享到:
评论

相关推荐

    JQuery学习总结

    jQuery库包含以下功能: HTML 元素选取、HTML 元素操作、CSS 操作、HTML 事件函数、JavaScript 特效和动画、HTML DOM 遍历和修改、AJAX、Utilities 提示: 除此之外,Jquery还提供了大量的插件。

    jQuery技术内幕:深入解析jQuery架构设计与实现原理

    鉴于这种复杂的体系架构,以及对浏览器缺陷的完善也非短期可以完成,开始为这款机顶盒浏览器移植jQuery,从而开始了对jQuery源码的学习和分析。 从2011年6月开始,开始把心得和记录整理成《jQuery 1.6.1源码分析系列...

    jquery50个实例下载

    jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多javascript高手加入其team,包括来自德国的J&ouml...使用其间也有一点点心得,其实这些心得,在jquery的文档上面也可能有讲,不过还是记下来,以备忘罢。

    jquery框架的js库

    jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多javascript高手加入其team,包括来自德国的J&ouml...使用其间也有一点点心得,其实这些心得,在jquery的文档上面也可能有讲,不过还是记下来,以备忘罢。

    Jquery mobile 从设计到开发

    移动开发中可以参考借鉴的工具书之一,是移动开发和轻应用开发的参考材料

    jquery-1.2.3.rar

    它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+,...使用其间也有一点点心得,其实这些心得,在jquery的文档上面也可能有讲,不过还是记下来,以备忘罢。

    jQuery API (中英文对照版)

    jQuery API (中英文对照版) ---------------------------------- jQuery由美国人John Resig创建,至今已吸引了...使用其间也有一点点心得,其实这些心得,在jquery的文档上面也可能有讲,不过还是记下来,以备忘罢。

    jQuery-1.3.js已压缩

    已压缩过的jQuery-1.3.js --------------------- jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多...使用其间也有一点点心得,其实这些心得,在jquery的文档上面也可能有讲,不过还是记下来,以备忘罢。

    JQuery In Action

    in action系列的又一经典,介绍JQuery框架的入门和提升。 JQuery: jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多javascript高手加入其team,包括来自德国的J&ouml;rn Zaefferer,罗马尼亚的Stefan...

    jQuery-1.3.js未压缩

    jQuery-1.3.js未压缩 -------------------------------- jQuery由美国人John Resig创建,至今已吸引了来自世界...使用其间也有一点点心得,其实这些心得,在jquery的文档上面也可能有讲,不过还是记下来,以备忘罢。

    jQuery权威指南-源代码

    希望这部耗时数月、承载了我近4年jQuery开发心得和体会的拙著能给每一位阅读过它的读者带来技术上的提升和思路上的启发。非常希望能借本书出版的机会与国内热衷于jQuery技术的开发者交流,如果大家想联系我,欢迎给...

    15天学会jquery

    15天学会jquery,经典教程 它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种...使用其间也有一点点心得,其实这些心得,在jquery的文档上面也可能有讲,不过还是记下来,以备忘罢。

    jquery 资料合集 实例

    使用其间也有一点点心得,其实这些心得,在jquery的文档上面也可能有讲,不过还是记下来,以备忘罢。三层架构, 企业库(Enterprise Library)是微软的模式与实践(Patterns &amp; Practices)的下一代应用程序块...

    JQUERY 1.3.2

    jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多javascript高手 加入其team,包括来自德国的J&...使用其间也有一点点心得,其实这些心得,在jquery的文档上面也可能有讲,不过还是记下来,以备忘罢。

    JQuery 学习笔记 选择器之一

    本章主要先对Jquery的选择器进行说明下,本人也不敢说讲解,哈,因为我也是正在学习中,本系列文章所写目的只在与对自己学习过程中的心得等记录下来,一方面加强自己的印象,另一方面共享下学习的经验,呵,小弟刚开始写这种...

    jquery easyui使用心得

    第一步下载jquery easyui  下载地址://www.jb51.net/codes/70218.html 第二步创建Java web项目 第三步导入相关的文件。。目录结构如下 &lt;link rel="stylesheet" type="text/css" href="easyui/themes/default/...

    15个值得开发人员关注的jQuery开发技巧和心得总结【经典收藏】

    本文总结述了15个值得开发人员关注的jQuery开发技巧和心得。非常精辟实用!分享给大家供大家参考,具体如下: 在这篇文章中,我们将介绍15个让你的jQuery更加有效的技巧,大部分关于性能提升的,希望大家能够喜欢! ...

    jQuery选择器之基本选择器用法实例分析

    初学jQuery,为了能系统地学习好jQuery,今天特意把自己的学习心得归纳一下,贴上来与初学者共享,今天我主要总结的是jquery的基本选择器。 基本选择器是jQuery中最常用的选择器,也是最简单的选择器,它主要是通过...

    分享bootstrap学习笔记心得(组件及其属性)

    Bootstrap是一种web框架,是基于HTML,CSS和JS的一种目前较为流行的前端框架。 Bootstrap包含有丰富的组件,根据提供的组件,开发者可以更加快速、便捷地搭建自己心仪的网站。通常包括有以下常用组件:下拉菜单、按钮...

    基于twbsPagination.js分页插件使用心得(分享)

    其实大致流程都是相同的,主要将我在用这个分页插件的一些心得分享出来: 1、分页插件引入html中需要: bootstrap.css 分页插件js 自己写的分页的样式css【如果不用,也可以直接用bootstrap所带的分页css。】 使用...

Global site tag (gtag.js) - Google Analytics