<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CQ-CSER &#187; JS</title>
	<atom:link href="http://cq-cser.cn/category/web/js-web/feed/" rel="self" type="application/rss+xml" />
	<link>http://cq-cser.cn</link>
	<description>计算机爱好者</description>
	<lastBuildDate>Wed, 02 May 2012 10:01:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>26JQUERY-SKILLS</title>
		<link>http://cq-cser.cn/2010/04/26jquery-skills/</link>
		<comments>http://cq-cser.cn/2010/04/26jquery-skills/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 13:09:26 +0000</pubDate>
		<dc:creator>cq</dc:creator>
				<category><![CDATA[JS]]></category>
		<category><![CDATA[JQUERY]]></category>

		<guid isPermaLink="false">http://cq-cser.cn/?p=1116</guid>
		<description><![CDATA[1. Disable right-click Disable right-click contextual menu. $(document).ready(function(){ $(document).bind(&#8220;contextmenu&#8221;,function(e){ return false; }); }); $(document).ready(function(){ $(document).bind(&#8220;contextmenu&#8221;,function(e){ return false; }); }); 2. Disappearing search field text Hide when clicked in the search field, the value.(example can be found below in the comment fields) $(document).ready(function() { $(&#8220;input.text1&#8243;).val(&#8220;Enter your search text here&#8221;); textFill($(&#8216;input.text1&#8242;)); }); function textFill(input){ //input focus text [...]


Related posts:<ol><li><a href='http://cq-cser.cn/2010/03/prototype-and-jquery/' rel='bookmark' title='Permanent Link: Prototype And jquery'>Prototype And jquery</a></li>
<li><a href='http://cq-cser.cn/2009/11/10-jquery-%e8%ae%be%e8%ae%a1%e6%8a%80%e5%b7%a7/' rel='bookmark' title='Permanent Link: 10 JQUERY 设计技巧'>10 JQUERY 设计技巧</a></li>
<li><a href='http://cq-cser.cn/2010/01/%e7%a6%81%e6%ad%a2%e5%8f%b3%e9%94%ae%e4%bb%a3%e7%a0%81/' rel='bookmark' title='Permanent Link: 禁止右键代码'>禁止右键代码</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>1. Disable right-click<br />
Disable right-click contextual menu.<span id="more-1116"></span></p>
<p>$(document).ready(function(){<br />
$(document).bind(&#8220;contextmenu&#8221;,function(e){<br />
return false;<br />
});<br />
});<br />
$(document).ready(function(){<br />
$(document).bind(&#8220;contextmenu&#8221;,function(e){<br />
return false;<br />
});<br />
});</p>
<p>2. Disappearing search field text<br />
Hide when clicked in the search field, the value.(example can be found below in the comment fields)</p>
<p>$(document).ready(function() {<br />
$(&#8220;input.text1&#8243;).val(&#8220;Enter your search text here&#8221;);<br />
textFill($(&#8216;input.text1&#8242;));<br />
});</p>
<p>function textFill(input){ //input focus text function<br />
var originalvalue = input.val();<br />
input.focus( function(){<br />
if( $.trim(input.val()) == originalvalue ){ input.val(&#8221;); }<br />
});<br />
input.blur( function(){<br />
if( $.trim(input.val()) == &#8221; ){ input.val(originalvalue); }<br />
});<br />
}<br />
$(document).ready(function() {<br />
$(&#8220;input.text1&#8243;).val(&#8220;Enter your search text here&#8221;);<br />
textFill($(&#8216;input.text1&#8242;));<br />
});</p>
<p>function textFill(input){ //input focus text function<br />
var originalvalue = input.val();<br />
input.focus( function(){<br />
if( $.trim(input.val()) == originalvalue ){ input.val(&#8221;); }<br />
});<br />
input.blur( function(){<br />
if( $.trim(input.val()) == &#8221; ){ input.val(originalvalue); }<br />
});<br />
}</p>
<p>3. Opening links in a new window<br />
XHTML 1.0 Strict doesn’t allow this attribute in the code, so use this to keep the code valid.</p>
<p>$(document).ready(function() {<br />
//Example 1: Every link will open in a new window<br />
$(&#8216;a[href^="http://"]&#8216;).attr(&#8220;target&#8221;, &#8220;_blank&#8221;);</p>
<p>//Example 2: Links with the rel=&#8221;external&#8221; attribute will only open in a new window<br />
$(&#8216;a[@rel$='external']&#8216;).click(function(){<br />
this.target = &#8220;_blank&#8221;;<br />
});<br />
});<br />
// how to use<br />
<a rel="external" href="http://www.opensourcehunter.com">open link</a><br />
$(document).ready(function() {<br />
//Example 1: Every link will open in a new window<br />
$(&#8216;a[href^="http://"]&#8216;).attr(&#8220;target&#8221;, &#8220;_blank&#8221;);</p>
<p>//Example 2: Links with the rel=&#8221;external&#8221; attribute will only open in a new window<br />
$(&#8216;a[@rel$='external']&#8216;).click(function(){<br />
this.target = &#8220;_blank&#8221;;<br />
});<br />
});<br />
// how to use<br />
open link</p>
<p>4. Detect browser<br />
Change/add something for a certain browser.</p>
<p>Notice: As of jQuery 1.4, the $.browser variable is replaced by $.support.</p>
<p>$(document).ready(function() {<br />
// Target Firefox 2 and above<br />
if ($.browser.mozilla &amp;&amp; $.browser.version &gt;= &#8220;1.8&#8243; ){<br />
// do something<br />
}</p>
<p>// Target Safari<br />
if( $.browser.safari ){<br />
// do something<br />
}</p>
<p>// Target Chrome<br />
if( $.browser.chrome){<br />
// do something<br />
}</p>
<p>// Target Camino<br />
if( $.browser.camino){<br />
// do something<br />
}</p>
<p>// Target Opera<br />
if( $.browser.opera){<br />
// do something<br />
}</p>
<p>// Target IE6 and below<br />
if ($.browser.msie &amp;&amp; $.browser.version &lt;= 6 ){ // do something } // Target anything above IE6 if ($.browser.msie &amp;&amp; $.browser.version &gt; 6){<br />
// do something<br />
}<br />
});<br />
$(document).ready(function() {<br />
// Target Firefox 2 and above<br />
if ($.browser.mozilla &amp;&amp; $.browser.version &gt;= &#8220;1.8&#8243; ){<br />
// do something<br />
}</p>
<p>// Target Safari<br />
if( $.browser.safari ){<br />
// do something<br />
}</p>
<p>// Target Chrome<br />
if( $.browser.chrome){<br />
// do something<br />
}</p>
<p>// Target Camino<br />
if( $.browser.camino){<br />
// do something<br />
}</p>
<p>// Target Opera<br />
if( $.browser.opera){<br />
// do something<br />
}</p>
<p>// Target IE6 and below<br />
if ($.browser.msie &amp;&amp; $.browser.version &lt;= 6 ){ // do something } // Target anything above IE6 if ($.browser.msie &amp;&amp; $.browser.version &gt; 6){<br />
// do something<br />
}<br />
});</p>
<p>5. Preloading images<br />
This piece of code will prevent the loading of all images, which can be useful if you have a site with lots of images.</p>
<p>$(document).ready(function() {<br />
jQuery.preloadImages = function()<br />
{<br />
for(var i = 0; i&#8221;).attr(&#8220;src&#8221;, arguments[i]);<br />
}<br />
}<br />
// how to use<br />
$.preloadImages(&#8220;image1.jpg&#8221;);<br />
});<br />
$(document).ready(function() {<br />
jQuery.preloadImages = function()<br />
{<br />
for(var i = 0; i&#8221;).attr(&#8220;src&#8221;, arguments[i]);<br />
}<br />
}<br />
// how to use<br />
$.preloadImages(&#8220;image1.jpg&#8221;);<br />
});</p>
<p>6. CSS Styleswitcher<br />
Switch between different styles?</p>
<p>$(document).ready(function() {<br />
$(&#8220;a.Styleswitcher&#8221;).click(function() {<br />
//swicth the LINK REL attribute with the value in A REL attribute<br />
$(&#8216;link[rel=stylesheet]&#8216;).attr(&#8216;href&#8217; , $(this).attr(&#8216;rel&#8217;));<br />
});<br />
// how to use<br />
// place this in your header</p>
<p>// the links<br />
<a class="Styleswitcher" rel="default.css" href="#">Default Theme</a><br />
<a class="Styleswitcher" rel="red.css" href="#">Red Theme</a><br />
<a class="Styleswitcher" rel="blue.css" href="#">Blue Theme</a><br />
});<br />
$(document).ready(function() {<br />
$(&#8220;a.Styleswitcher&#8221;).click(function() {<br />
//swicth the LINK REL attribute with the value in A REL attribute<br />
$(&#8216;link[rel=stylesheet]&#8216;).attr(&#8216;href&#8217; , $(this).attr(&#8216;rel&#8217;));<br />
});<br />
// how to use<br />
// place this in your header</p>
<p>// the links<br />
Default Theme<br />
Red Theme<br />
Blue Theme<br />
});</p>
<p>7. Columns of equal height<br />
If you are using two CSS columns, use this to make them exactly the same height.</p>
<p>$(document).ready(function() {<br />
function equalHeight(group) {<br />
tallest = 0;<br />
group.each(function() {<br />
thisHeight = $(this).height();<br />
if(thisHeight &gt; tallest) {<br />
tallest = thisHeight;<br />
}<br />
});<br />
group.height(tallest);<br />
}<br />
// how to use<br />
$(document).ready(function() {<br />
equalHeight($(&#8220;.left&#8221;));<br />
equalHeight($(&#8220;.right&#8221;));<br />
});<br />
});<br />
$(document).ready(function() {<br />
function equalHeight(group) {<br />
tallest = 0;<br />
group.each(function() {<br />
thisHeight = $(this).height();<br />
if(thisHeight &gt; tallest) {<br />
tallest = thisHeight;<br />
}<br />
});<br />
group.height(tallest);<br />
}<br />
// how to use<br />
$(document).ready(function() {<br />
equalHeight($(&#8220;.left&#8221;));<br />
equalHeight($(&#8220;.right&#8221;));<br />
});<br />
});</p>
<p>8. Font resizing<br />
Want to let the users change there font size?</p>
<p>$(document).ready(function() {<br />
// Reset the font size(back to default)<br />
var originalFontSize = $(&#8216;html&#8217;).css(&#8216;font-size&#8217;);<br />
$(&#8220;.resetFont&#8221;).click(function(){<br />
$(&#8216;html&#8217;).css(&#8216;font-size&#8217;, originalFontSize);<br />
});<br />
// Increase the font size(bigger font0<br />
$(&#8220;.increaseFont&#8221;).click(function(){<br />
var currentFontSize = $(&#8216;html&#8217;).css(&#8216;font-size&#8217;);<br />
var currentFontSizeNum = parseFloat(currentFontSize, 10);<br />
var newFontSize = currentFontSizeNum*1.2;<br />
$(&#8216;html&#8217;).css(&#8216;font-size&#8217;, newFontSize);<br />
return false;<br />
});<br />
// Decrease the font size(smaller font)<br />
$(&#8220;.decreaseFont&#8221;).click(function(){<br />
var currentFontSize = $(&#8216;html&#8217;).css(&#8216;font-size&#8217;);<br />
var currentFontSizeNum = parseFloat(currentFontSize, 10);<br />
var newFontSize = currentFontSizeNum*0.8;<br />
$(&#8216;html&#8217;).css(&#8216;font-size&#8217;, newFontSize);<br />
return false;<br />
});<br />
});<br />
$(document).ready(function() {<br />
// Reset the font size(back to default)<br />
var originalFontSize = $(&#8216;html&#8217;).css(&#8216;font-size&#8217;);<br />
$(&#8220;.resetFont&#8221;).click(function(){<br />
$(&#8216;html&#8217;).css(&#8216;font-size&#8217;, originalFontSize);<br />
});<br />
// Increase the font size(bigger font0<br />
$(&#8220;.increaseFont&#8221;).click(function(){<br />
var currentFontSize = $(&#8216;html&#8217;).css(&#8216;font-size&#8217;);<br />
var currentFontSizeNum = parseFloat(currentFontSize, 10);<br />
var newFontSize = currentFontSizeNum*1.2;<br />
$(&#8216;html&#8217;).css(&#8216;font-size&#8217;, newFontSize);<br />
return false;<br />
});<br />
// Decrease the font size(smaller font)<br />
$(&#8220;.decreaseFont&#8221;).click(function(){<br />
var currentFontSize = $(&#8216;html&#8217;).css(&#8216;font-size&#8217;);<br />
var currentFontSizeNum = parseFloat(currentFontSize, 10);<br />
var newFontSize = currentFontSizeNum*0.8;<br />
$(&#8216;html&#8217;).css(&#8216;font-size&#8217;, newFontSize);<br />
return false;<br />
});<br />
});</p>
<p>9. Smooth(animated) page scroll<br />
For a smooth(animated) ride back to the top(or any location).</p>
<p>$(document).ready(function() {<br />
$(&#8216;a[href*=#]&#8216;).click(function() {<br />
if (location.pathname.replace(/^\//,&#8221;) == this.pathname.replace(/^\//,&#8221;)<br />
&amp;&amp; location.hostname == this.hostname) {<br />
var $target = $(this.hash);<br />
$target = $target.length &amp;&amp; $target<br />
|| $(&#8216;[name=' + this.hash.slice(1) +']&#8216;);<br />
if ($target.length) {<br />
var targetOffset = $target.offset().top;<br />
$(&#8216;html,body&#8217;)<br />
.animate({scrollTop: targetOffset}, 900);<br />
return false;<br />
}<br />
}<br />
});<br />
// how to use<br />
// place this where you want to scroll to<br />
<a name="top"></a><br />
// the link<br />
<a href="#top">go to top</a><br />
});<br />
$(document).ready(function() {<br />
$(&#8216;a[href*=#]&#8216;).click(function() {<br />
if (location.pathname.replace(/^\//,&#8221;) == this.pathname.replace(/^\//,&#8221;)<br />
&amp;&amp; location.hostname == this.hostname) {<br />
var $target = $(this.hash);<br />
$target = $target.length &amp;&amp; $target<br />
|| $(&#8216;[name=' + this.hash.slice(1) +']&#8216;);<br />
if ($target.length) {<br />
var targetOffset = $target.offset().top;<br />
$(&#8216;html,body&#8217;)<br />
.animate({scrollTop: targetOffset}, 900);<br />
return false;<br />
}<br />
}<br />
});<br />
// how to use<br />
// place this where you want to scroll to</p>
<p>// the link<br />
go to top<br />
});</p>
<p>11. Get the mouse cursor x and y axis<br />
Want to know where your mouse cursor is?</p>
<p>$(document).ready(function() {<br />
$().mousemove(function(e){<br />
//display the x and y axis values inside the div with the id XY<br />
$(&#8216;#XY&#8217;).html(&#8220;X Axis : &#8221; + e.pageX + &#8221; | Y Axis &#8221; + e.pageY);<br />
});<br />
// how to use</p>
<p>});<br />
$(document).ready(function() {<br />
$().mousemove(function(e){<br />
//display the x and y axis values inside the div with the id XY<br />
$(&#8216;#XY&#8217;).html(&#8220;X Axis : &#8221; + e.pageX + &#8221; | Y Axis &#8221; + e.pageY);<br />
});<br />
// how to use</p>
<p>});</p>
<p>12. Verify if an Element is empty<br />
This will allow you to check if an element is empty.</p>
<p>$(document).ready(function() {<br />
if ($(&#8216;#id&#8217;).html()) {<br />
// do something<br />
}<br />
});<br />
$(document).ready(function() {<br />
if ($(&#8216;#id&#8217;).html()) {<br />
// do something<br />
}<br />
});</p>
<p>13. Replace a element<br />
Want to replace a div, or something else?</p>
<p>$(document).ready(function() {<br />
$(&#8216;#id&#8217;).replaceWith(&#8216;</p>
<div>I have been replaced</div>
<p>&#8216;);<br />
});<br />
$(document).ready(function() {<br />
$(&#8216;#id&#8217;).replaceWith(&#8216;<br />
I have been replaced</p>
<p>&#8216;);<br />
});</p>
<p>14. jQuery timer callback functions<br />
Want to delay something?</p>
<p>$(document).ready(function() {<br />
window.setTimeout(function() {<br />
// do something<br />
}, 1000);<br />
});<br />
$(document).ready(function() {<br />
window.setTimeout(function() {<br />
// do something<br />
}, 1000);<br />
});</p>
<p>15. Remove a word<br />
Want to remove a certain word(s)?</p>
<p>$(document).ready(function() {<br />
var el = $(&#8216;#id&#8217;);<br />
el.html(el.html().replace(/word/ig, &#8220;&#8221;));<br />
});<br />
$(document).ready(function() {<br />
var el = $(&#8216;#id&#8217;);<br />
el.html(el.html().replace(/word/ig, &#8220;&#8221;));<br />
});</p>
<p>16. Verify that an element exists in jQuery<br />
Simply test with the .length property if the element exists.</p>
<p>$(document).ready(function() {<br />
if ($(&#8216;#id&#8217;).length) {<br />
// do something<br />
}<br />
});<br />
$(document).ready(function() {<br />
if ($(&#8216;#id&#8217;).length) {<br />
// do something<br />
}<br />
});</p>
<p>17. Make the entire DIV clickable<br />
Want to make the complete div clickable?</p>
<p>$(document).ready(function() {<br />
$(&#8220;div&#8221;).click(function(){<br />
//get the url from href attribute and launch the url<br />
window.location=$(this).find(&#8220;a&#8221;).attr(&#8220;href&#8221;); return false;<br />
});<br />
// how to use</p>
<div><a href="index.html">home</a></div>
<p>});<br />
$(document).ready(function() {<br />
$(&#8220;div&#8221;).click(function(){<br />
//get the url from href attribute and launch the url<br />
window.location=$(this).find(&#8220;a&#8221;).attr(&#8220;href&#8221;); return false;<br />
});<br />
// how to use<br />
home</p>
<p>});</p>
<p>18. Switch between classes or id’s when resizing the window.<br />
Want to switch between a class or id, when resizing the window?</p>
<p>$(document).ready(function() {<br />
function checkWindowSize() {<br />
if ( $(window).width() &gt; 1200 ) {<br />
$(&#8216;body&#8217;).addClass(&#8216;large&#8217;);<br />
}<br />
else {<br />
$(&#8216;body&#8217;).removeClass(&#8216;large&#8217;);<br />
}<br />
}<br />
$(window).resize(checkWindowSize);<br />
});<br />
$(document).ready(function() {<br />
function checkWindowSize() {<br />
if ( $(window).width() &gt; 1200 ) {<br />
$(&#8216;body&#8217;).addClass(&#8216;large&#8217;);<br />
}<br />
else {<br />
$(&#8216;body&#8217;).removeClass(&#8216;large&#8217;);<br />
}<br />
}<br />
$(window).resize(checkWindowSize);<br />
});</p>
<p>19. Clone a object<br />
Clone a div or an other element.</p>
<p>$(document).ready(function() {<br />
var cloned = $(&#8216;#id&#8217;).clone();<br />
// how to use</p>
<p>});<br />
$(document).ready(function() {<br />
var cloned = $(&#8216;#id&#8217;).clone();<br />
// how to use</p>
<p>});</p>
<p>20. Center an element on the screen<br />
Center an element in the center of your screen.</p>
<p>$(document).ready(function() {<br />
jQuery.fn.center = function () {<br />
this.css(&#8220;position&#8221;,&#8221;absolute&#8221;);<br />
this.css(&#8220;top&#8221;, ( $(window).height() &#8211; this.height() ) / 2+$(window).scrollTop() + &#8220;px&#8221;);<br />
this.css(&#8220;left&#8221;, ( $(window).width() &#8211; this.width() ) / 2+$(window).scrollLeft() + &#8220;px&#8221;);<br />
return this;<br />
}<br />
$(&#8220;#id&#8221;).center();<br />
});<br />
$(document).ready(function() {<br />
jQuery.fn.center = function () {<br />
this.css(&#8220;position&#8221;,&#8221;absolute&#8221;);<br />
this.css(&#8220;top&#8221;, ( $(window).height() &#8211; this.height() ) / 2+$(window).scrollTop() + &#8220;px&#8221;);<br />
this.css(&#8220;left&#8221;, ( $(window).width() &#8211; this.width() ) / 2+$(window).scrollLeft() + &#8220;px&#8221;);<br />
return this;<br />
}<br />
$(&#8220;#id&#8221;).center();<br />
});</p>
<p>21. Write our own selector<br />
Write your own selectors.</p>
<p>$(document).ready(function() {<br />
$.extend($.expr[':'], {<br />
moreThen1000px: function(a) {<br />
return $(a).width() &gt; 1000;<br />
}<br />
});<br />
$(&#8216;.box:moreThen1000px&#8217;).click(function() {<br />
// creating a simple js alert box<br />
alert(&#8216;The element that you have clicked is over 1000 pixels wide&#8217;);<br />
});<br />
});<br />
$(document).ready(function() {<br />
$.extend($.expr[':'], {<br />
moreThen1000px: function(a) {<br />
return $(a).width() &gt; 1000;<br />
}<br />
});<br />
$(&#8216;.box:moreThen1000px&#8217;).click(function() {<br />
// creating a simple js alert box<br />
alert(&#8216;The element that you have clicked is over 1000 pixels wide&#8217;);<br />
});<br />
});</p>
<p>22. Count a element<br />
Count an element.</p>
<p>$(document).ready(function() {<br />
$(&#8220;p&#8221;).size();<br />
});<br />
$(document).ready(function() {<br />
$(&#8220;p&#8221;).size();<br />
});</p>
<p>23. Use Your Own Bullets<br />
Want to use your own bullets instead of using the standard or images bullets?</p>
<p>$(document).ready(function() {<br />
$(&#8220;ul&#8221;).addClass(&#8220;Replaced&#8221;);<br />
$(&#8220;ul &gt; li&#8221;).prepend(&#8220;‒ &#8220;);<br />
// how to use<br />
ul.Replaced { list-style : none; }<br />
});<br />
$(document).ready(function() {<br />
$(&#8220;ul&#8221;).addClass(&#8220;Replaced&#8221;);<br />
$(&#8220;ul &gt; li&#8221;).prepend(&#8220;‒ &#8220;);<br />
// how to use<br />
ul.Replaced { list-style : none; }<br />
});</p>
<p>24. Let Google host jQuery for you<br />
Let Google host the jQuery script for you. This can be done in 2 ways.</p>
<p>//Example 1<br />
<script src="http://www.google.com/jsapi"></script><br />
<script type="text/javascript"></script></p>
<p>// Example 2:(the best and fastest way)<br />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript"></script><br />
//Example 1</p>
<p>// Example 2:(the best and fastest way)</p>
<p>25. Disable jQuery animations<br />
Disable all jQuery effects</p>
<p>$(document).ready(function() {<br />
jQuery.fx.off = true;<br />
});<br />
$(document).ready(function() {<br />
jQuery.fx.off = true;<br />
});</p>
<p>26. No conflict-mode<br />
To avoid conflict other libraries on your website, you can use this jQuery Method, and assign a different variable name instead of the dollar sign.</p>
<p>$(document).ready(function() {<br />
var $jq = jQuery.noConflict();<br />
$jq(&#8216;#id&#8217;).show();<br />
});<br />
$(document).ready(function() {<br />
var $jq = jQuery.noConflict();<br />
$jq(&#8216;#id&#8217;).show();<br />
});</p>


<p>Related posts:<ol><li><a href='http://cq-cser.cn/2010/03/prototype-and-jquery/' rel='bookmark' title='Permanent Link: Prototype And jquery'>Prototype And jquery</a></li>
<li><a href='http://cq-cser.cn/2009/11/10-jquery-%e8%ae%be%e8%ae%a1%e6%8a%80%e5%b7%a7/' rel='bookmark' title='Permanent Link: 10 JQUERY 设计技巧'>10 JQUERY 设计技巧</a></li>
<li><a href='http://cq-cser.cn/2010/01/%e7%a6%81%e6%ad%a2%e5%8f%b3%e9%94%ae%e4%bb%a3%e7%a0%81/' rel='bookmark' title='Permanent Link: 禁止右键代码'>禁止右键代码</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://cq-cser.cn/2010/04/26jquery-skills/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>文本编辑器10</title>
		<link>http://cq-cser.cn/2010/04/%e6%96%87%e6%9c%ac%e7%bc%96%e8%be%91%e5%99%a810/</link>
		<comments>http://cq-cser.cn/2010/04/%e6%96%87%e6%9c%ac%e7%bc%96%e8%be%91%e5%99%a810/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 13:05:28 +0000</pubDate>
		<dc:creator>cq</dc:creator>
				<category><![CDATA[JS]]></category>
		<category><![CDATA[WEB]]></category>
		<category><![CDATA[JQUERY]]></category>
		<category><![CDATA[文本编辑器]]></category>

		<guid isPermaLink="false">http://cq-cser.cn/?p=1114</guid>
		<description><![CDATA[Javascript富文本编辑器使我们添加、编辑网站中的文章更加方便和容易。这些富文本编辑器提供了所见即所得(What You See Is What You Get &#8211; WYSIWYG)的功能，可以像编辑word文档一样，方便地编辑网站中文章，常用于内容管理系统和博客系统等。 下面列出了常用的10个富文本编辑器，有最基础的格式富文本编辑器，也有复杂的具有文件上传能、创建表格功能、Ajax支持的富文本编辑器。 MarkitUp &#8211; jQuery Official Website &#124; Demo 一个轻量级的、可定制的和灵活的富文本编辑器，常用在CMS、Blog、论坛等网站上。 markItUp不是一个所见即所得的编辑器，支持一些常用快车键和常用的浏览器。 jWYSIWYG &#8211; jQuery Official Website &#124; Demo jWYSIWYG是比较常用的Jquery所见即所得编辑器，提供了html代码编辑功能、文字编辑功能，图片连接功能，从而保证了jWYSIWYG的简单的特性。 Lightweight RTE- jQuery Official Website &#124; Demo Lightweight RTE是一个非常简单的Jquery富文本编辑器，体积只有7kb。提供了一些基本的文字格式化操作功能。 HTMLBox &#8211; jQuery Official Website &#124; Demo HTMLBox跨浏览器、交互性非常好、开源的Jquery富文本编辑器，在Mozilla Firefox, Inrernet Explorer, Opera, Netscape and Safari等常用浏览器下测试通过。此编辑器用户手册可以帮住你非常容易地把此编辑器整合到自己的Web系统中 D Small Rich Text [...]


Related posts:<ol><li><a href='http://cq-cser.cn/2009/12/%e5%bc%ba%e7%83%88%e6%8e%a8%e8%8d%90%ef%bc%9a240%e5%a4%9a%e4%b8%aajquery%e6%8f%92%e4%bb%b6/' rel='bookmark' title='Permanent Link: 强烈推荐：240多个jQuery插件'>强烈推荐：240多个jQuery插件</a></li>
<li><a href='http://cq-cser.cn/2010/02/change-font-size/' rel='bookmark' title='Permanent Link: Change Font/-size'>Change Font/-size</a></li>
<li><a href='http://cq-cser.cn/2010/01/jquery%e8%bf%9b%e8%a1%8c%e8%b7%a8%e5%9f%9f%e8%af%b7%e6%b1%82/' rel='bookmark' title='Permanent Link: JQuery进行跨域请求'>JQuery进行跨域请求</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Javascript富文本编辑器使我们添加、编辑网站中的文章更加方便和容易。这些富文本编辑器提供了所见即所得(What You See Is What You Get &#8211; WYSIWYG)的功能，可以像编辑word文档一样，方便地编辑网站中文章，常用于内容管理系统和博客系统等。</p>
<p>下面列出了常用的10个富文本编辑器，有最基础的格式富文本编辑器，也有复杂的具有文件上传能、创建表格功能、Ajax支持的富文本编辑器。<span id="more-1114"></span></p>
<p align="left"><strong>MarkitUp &#8211; jQuery</strong></p>
<p align="left"><strong><a href="http://markitup.jaysalvat.com/home/" target="_blank">Official Website</a></strong> | <strong><a href="http://markitup.jaysalvat.com/examples/" target="_blank">Demo</a></strong></p>
<p align="left">一个轻量级的、可定制的和灵活的富文本编辑器，常用在CMS、Blog、论坛等网站上。</p>
<p align="left">markItUp不是一个所见即所得的编辑器，支持一些常用快车键和常用的浏览器。</p>
<p align="left"><strong>jWYSIWYG &#8211; jQuery</strong></p>
<p align="left"><strong><a href="http://code.google.com/p/jwysiwyg/" target="_blank">Official Website</a></strong> | <strong><a href="http://code.google.com/p/jwysiwyg/" target="_blank">Demo</a></strong></p>
<p align="left">jWYSIWYG是比较常用的Jquery所见即所得编辑器，提供了html代码编辑功能、文字编辑功能，图片连接功能，从而保证了jWYSIWYG的简单的特性。</p>
<p align="left"><strong>Lightweight RTE- jQuery</strong></p>
<p align="left"><strong><a href="http://batiste.dosimple.ch/blog/posts/2007-09-11-1/rich-text-editor-jquery.html" target="_blank">Official Website</a></strong> | <strong><a href="http://batiste.dosimple.ch/blog/posts/2007-09-11-1/rich-text-editor-jquery.html" target="_blank">Demo</a></strong></p>
<p align="left">Lightweight RTE是一个非常简单的Jquery富文本编辑器，体积只有7kb。提供了一些基本的文字格式化操作功能。</p>
<p align="left"><strong>HTMLBox &#8211; jQuery</strong></p>
<p align="left"><strong><a href="http://remiya.com/cms/projects/jquery-plugins/htmlbox/" target="_blank">Official Website</a></strong> | <strong><a href="http://remiya.com/cms/projects/jquery-plugins/htmlbox/demo_full.html" target="_blank">Demo</a></strong></p>
<p align="left">HTMLBox跨浏览器、交互性非常好、开源的Jquery富文本编辑器，在Mozilla Firefox, Inrernet Explorer, Opera, Netscape and Safari等常用浏览器下测试通过。此编辑器用户手册可以帮住你非常容易地把此编辑器整合到自己的Web系统中</p>
<p align="left"><strong>D Small Rich Text Editor &#8211; jQuery</strong></p>
<p align="left"><strong><a href="http://www.avidansoft.com/dsrte/index.php" target="_blank">Official Website</a></strong> | <strong><a href="http://www.avidansoft.com/dsrte/index.php" target="_blank">Demo</a></strong></p>
<p align="left">D Small Rich Text Editor使用了AjaxFileUpload 插件实现图片上传功能。</p>
<p align="left"><strong>WYMEditor &#8211; jQuery</strong></p>
<p align="left"><strong><a href="http://www.wymeditor.org/demo/" target="_blank">Official Website</a></strong> | <strong><a href="http://files.wymeditor.org/wymeditor/trunk/src/examples/13-silver-skin.html" target="_blank">Demo</a></strong></p>
<p align="left">WYMeditor是一个所建即所得Jquery富文本编辑器。支持插件扩展功能、</p>
<p align="left"><strong>TinyMCE &#8211; non-jQuery</strong></p>
<p align="left"><strong><a href="http://tinymce.moxiecode.com/" target="_blank">Official Website</a></strong> | <strong><a href="http://tinymce.moxiecode.com/examples/full.php" target="_blank">Demo</a></strong></p>
<p align="left">TinyMCE 国内很多网站都在使用，是一个非常不错的所见即所得编辑器，而且开源。具体功能不再赘述，大家自己发现吧。</p>
<p align="left"><strong>fckeditor &#8211; Non-jQuery</strong></p>
<p align="left"><strong><a href="http://www.fckeditor.net/" target="_blank">Official Website</a></strong> | <strong><a href="http://www.fckeditor.net/demo" target="_blank">Demo</a></strong></p>
<p align="left">Fckeditor是一个功能非常强大的富文本编辑器，博客园有使用此编辑器，我做的大部分项目也使用此编辑器，是asp.net网站的首选，提供了weconfig.xml文件用来定制符合自己需求的富文本编辑器。完全可以与MS的Word媲美。</p>
<p align="left"><strong>Yahoo YUI Rich Text Editor &#8211; Non-jQuery</strong></p>
<p align="left"><strong><a href="http://developer.yahoo.com/yui/editor/" target="_blank">Official Website</a></strong> | <strong><a href="http://developer.yahoo.com/yui/editor/" target="_blank">Demo</a></strong></p>
<p align="left">YUI Rich Text Editor是轻量级的富文本编辑器，提供了一些常用的文字编辑功能。</p>
<p align="left"><strong>Xinha &#8211; Non-jQuery</strong></p>
<p align="left"><strong><a href="http://xinha.webfactional.com/" target="_blank">Official Website</a></strong> | <strong><a href="http://xinha.webfactional.com/wiki/Examples" target="_blank">Demo</a></strong></p>
<p align="left">Xinha是一个所见即所得的富文本编辑器，提供了强大的文字，图片。视频。音频等编辑功能</p>
<p align="left"> </p>


<p>Related posts:<ol><li><a href='http://cq-cser.cn/2009/12/%e5%bc%ba%e7%83%88%e6%8e%a8%e8%8d%90%ef%bc%9a240%e5%a4%9a%e4%b8%aajquery%e6%8f%92%e4%bb%b6/' rel='bookmark' title='Permanent Link: 强烈推荐：240多个jQuery插件'>强烈推荐：240多个jQuery插件</a></li>
<li><a href='http://cq-cser.cn/2010/02/change-font-size/' rel='bookmark' title='Permanent Link: Change Font/-size'>Change Font/-size</a></li>
<li><a href='http://cq-cser.cn/2010/01/jquery%e8%bf%9b%e8%a1%8c%e8%b7%a8%e5%9f%9f%e8%af%b7%e6%b1%82/' rel='bookmark' title='Permanent Link: JQuery进行跨域请求'>JQuery进行跨域请求</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://cq-cser.cn/2010/04/%e6%96%87%e6%9c%ac%e7%bc%96%e8%be%91%e5%99%a810/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prototype And jquery</title>
		<link>http://cq-cser.cn/2010/03/prototype-and-jquery/</link>
		<comments>http://cq-cser.cn/2010/03/prototype-and-jquery/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 15:39:00 +0000</pubDate>
		<dc:creator>cq</dc:creator>
				<category><![CDATA[JS]]></category>
		<category><![CDATA[JQUERY]]></category>
		<category><![CDATA[Prototype]]></category>

		<guid isPermaLink="false">http://cq-cser.cn/?p=1104</guid>
		<description><![CDATA[Prototype And jquery Back Overview jquery gets a lot of its inspiration from the power behind the Prototype library. This is immediately noticeable with jquery&#8216;s use of the $() function, inspired by the Prototype function of the same name. However, there are some things that should be known about the Prototype and jquery interact, and [...]


Related posts:<ol><li><a href='http://cq-cser.cn/2009/12/jquery-tips/' rel='bookmark' title='Permanent Link: JQuery Tips'>JQuery Tips</a></li>
<li><a href='http://cq-cser.cn/2009/11/10-jquery-%e8%ae%be%e8%ae%a1%e6%8a%80%e5%b7%a7/' rel='bookmark' title='Permanent Link: 10 JQUERY 设计技巧'>10 JQUERY 设计技巧</a></li>
<li><a href='http://cq-cser.cn/2009/12/hosting-iframes-using-the-jquery-ui-tabs-plug-in/' rel='bookmark' title='Permanent Link: Hosting IFRAMEs using the JQuery UI Tabs plug-in'>Hosting IFRAMEs using the JQuery UI Tabs plug-in</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id="blog_text">
<h2>Prototype And <span style="color: #108ac6;">jquery</span></h2>
<div>
<div>
<div>
<h4>Back</h4>
<ul>
<li><a href="http://jquery.com/docs/Overview/"><span style="color: #108ac6;">Overview</span></a></li>
</ul>
</div>
<p><a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> gets a lot of its inspiration from the power behind the <a href="http://prototype.conio.net/"><span style="color: #108ac6;">Prototype</span></a> library. This is immediately  noticeable with <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a>&#8216;s use of the $() function, inspired by  the Prototype function of the same name. However, there are some things  that should be known about the Prototype and <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> interact, and how the $() behaves differently.<span id="more-1104"></span></p>
<h3>Using Prototype and <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> Together</h3>
<p>只要先引入prototype再引入<a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a>,个人感觉就是作者自己说的,因为是Prototype给他灵感,所以重成了 Prototype的部分内容,因此先<a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a>必将出现我们所不知道的错误.To include both Javascript libraries, and have them work in unison,  you will need to first include Prototype, then <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a>.  For example:</p>
<pre>&lt;script src="<a href="http://www.lvjiyong.com/tag/prototype.js"><span style="color: #108ac6;">prototype.js</span></a>"&gt;&lt;/script&gt;
  &lt;script src="http://<a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a>.com/src/latest/"&gt;&lt;/script&gt;</pre>
<p>Loading <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> first, then Prototype, will cause your  code to break &#8211; as a reminder, <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> throws an exception saying: &#8220;You are overwriting <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a>,  please include <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> last.&#8221; (If you see this error, that&#8217;s  what it means)</p>
<h3>Differences in $()</h3>
<p>A side-by-side comparison of how the $() function works *ONLY WHEN  PROTOTYPE IS USED* would be best to explain the differences. If you&#8217;re  not using Prototype, please refer to the <a href="http://jquery.com/docs/"><span style="color: #108ac6;">documentation</span></a>,  instead.</p>
<pre>$("pre")</pre>
<p><strong>Prototype:</strong> Looks for the element with an ID of pre,  if found, returns it, otherwise returns null.</p>
<p><strong><a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a>:</strong> Looks for all elements with  the <a href="http://ewebapp.cnblogs.com/category/35112.html"><span style="color: #108ac6;">Tag</span></a> name of pre.</p>
<ul>
<li>If none are found: It then looks for an element with an ID of  pre, if one is found &#8211; it returns that element, if not, it returns a <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> object, with an empty set of matched elements.</li>
<li>If elements are found: <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> returns a <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> object, containing the all matched pre  elements.</li>
</ul>
<pre>$(DOMElement)</pre>
<p><strong>Prototype:</strong> Returns the DOMElement.</p>
<p><strong><a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a>:</strong> Attaches all of the <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> object methods to the DOMElement, then returns it. The result should  still be usable by Prototype and <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a>.  <strong>Note:</strong> See the bottom of the page for more information  on this.</p>
<h3>What to do about $()?</h3>
<p>Because the behavior of Prototype and <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> is different, when it comes to the $() function, it is recommended that  you do one of two things:</p>
<h4>Un-ambiguous Selectors</h4>
<p>Always be explicit when you search by a single ID. For example, use  this:</p>
<pre>$("#pre")</pre>
<p>and not this, which is ambiguous:</p>
<pre>$("pre")</pre>
<p>Doing that will solve any problems straight away.</p>
<h4>Prototype Short-hand</h4>
<p>If you want to continuing using the Prototype short-hand, you must  keep one rule in mind: Never name any of your IDs the same as a DOM  Element type, otherwise you will have strange results. For example:</p>
<pre>$("pre")</pre>
<p>would work, if there were no pre elements in the page, but once one  was added, your code would break. A better example is:</p>
<pre>$("body")</pre>
<p>which will always break (since the body element is required).</p>
<p><strong>In a nutshell:</strong> Either use smart un-ambiguous !IDs,  or don&#8217;t name your !IDs the same as element names.</p>
<h3>Wrapping of DOM Elements</h3>
<p>In order to support both Prototype and <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> users at the same time, returned DOM elements have additional <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> functions attached to them. It should be noted, however, that just  because the original DOM Element is being returned, its original  functions and properties should not be accessed directly, for example:</p>
<p>When using both Prototype and <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> <tt><span style="font-family: 新宋体;">$("wrap")</span></tt> will return a modified DOM  Element, so if you were inclined to do:</p>
<pre>$("wrap").style.display = 'none';</pre>
<p>That would work, but only when using Prototype. If you then, later,  stopped using Prototype, that code would break. To be safe, you should  only use <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a>-sanctioned functions and terminology,  for example:</p>
<pre>$("#wrap").hide();</pre>
<p>would be the proper way of doing the above &#8211; it will always work,  even if you are (or aren&#8217;t) using Prototype.</p>
<h3>Using Prototype and <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> Together (other solution)</h3>
<p>If you need use <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> and also Prototype + Scriptaculous +  &#8230; , you need rename <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> $ function. For example:</p>
<pre>&lt;script src="http://<a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a>.com/src/latest/"&gt;&lt;/script&gt;
 &lt;script type="text/javascript"&gt;
    JQ = $;  //rename $ function
 &lt;/script&gt;
 &lt;script src="<a href="http://www.lvjiyong.com/tag/prototype.js"><span style="color: #108ac6;">prototype.js</span></a>"&gt;&lt;/script&gt;</pre>
<p>Then you can access to <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> function with JQ and for access to  Prototype $ function use the normal name. For example:</p>
<pre>&lt;script type="text/javascript"&gt;
  JQ(document).ready(function(){
   JQ("#test_<a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a>").html("this is <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a>");
   $("test_prototype").innerHTML="this is Prototype";
  });
 &lt;/script&gt;</pre>
<p>NOTE: Be carefull with <a href="http://www.lvjiyong.com/tag/jquery"><span style="color: #108ac6;">jquery</span></a> plugins, you will need rename all $  references to JQ or other name.</div>
</div>
</div>


<p>Related posts:<ol><li><a href='http://cq-cser.cn/2009/12/jquery-tips/' rel='bookmark' title='Permanent Link: JQuery Tips'>JQuery Tips</a></li>
<li><a href='http://cq-cser.cn/2009/11/10-jquery-%e8%ae%be%e8%ae%a1%e6%8a%80%e5%b7%a7/' rel='bookmark' title='Permanent Link: 10 JQUERY 设计技巧'>10 JQUERY 设计技巧</a></li>
<li><a href='http://cq-cser.cn/2009/12/hosting-iframes-using-the-jquery-ui-tabs-plug-in/' rel='bookmark' title='Permanent Link: Hosting IFRAMEs using the JQuery UI Tabs plug-in'>Hosting IFRAMEs using the JQuery UI Tabs plug-in</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://cq-cser.cn/2010/03/prototype-and-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sajax/php下ajax简易框架</title>
		<link>http://cq-cser.cn/2010/03/sajaxphp%e4%b8%8bajax%e7%ae%80%e6%98%93%e6%a1%86%e6%9e%b6/</link>
		<comments>http://cq-cser.cn/2010/03/sajaxphp%e4%b8%8bajax%e7%ae%80%e6%98%93%e6%a1%86%e6%9e%b6/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 03:50:09 +0000</pubDate>
		<dc:creator>cq</dc:creator>
				<category><![CDATA[JS]]></category>
		<category><![CDATA[OTHER]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sajax]]></category>

		<guid isPermaLink="false">http://cq-cser.cn/?p=988</guid>
		<description><![CDATA[http://www.modernmethod.com/sajax/  使用sajax其实很简单，首先当然要包含sajax这个文件    require(&#8220;Sajax.php&#8221;); $sajax_remote_uri = &#8220;http://a..php;&#8221;    //这里是远程要处理判断结果的一个页面 sajax_init();  //Sajax初始化函数，看过Sajax.php的都知道，其实这个函数的内容是空的，这里写的目的就是告诉你这个页面会使用Sajax。因为Sajax并不是一个类，而是一个函数集，所以不需要建立对象，实际应用中不执行这个函数也没有关系。 sajax_export(&#8220;riqi&#8221;); //用sajax_export定义将要在Javascript输出的函数，也就是从HTML页面中可以使用的函数。将函数的名字传递给sajax_export，如果多个函数可以向sajax_export传递多个参数来实现 sajax_handle_client_request(); //处理客户端需求函数，开始访问页面的时候不会起作用，但是当客户端将需求（运行哪个函数，参数是多少等等）传递过来的时候就由这个来处理了。 好了，后台的PHP部分结束，下面是HTML显示部分，纯粹的HTML基础就不管了，只说和Sajax使用有关的部分 &#60;? sajax_show_javascript(); //显示Sajax生成的Javascript， ?&#62; 接下来我们写处理的函数 比如在那个“确定”按钮的onclick事件中，如下写： function getriqi() {  var yearend=frm.yend.value     。。。。。。。      x_riqi(yearend,getriqidb); } 这里比如可以先获得要判断计算的值（比如这里的yearend),然后注意 x_riqi(yearend,getriqidb)这句话 这里的riqi函数，是在前面PHP中用sajax_export定义，由sajax_show_javascript输出的函数之一，其格式就是你在sajax_export中定义的函数名前面加x_。，接着可以把要传递的参数一个个接着写下去。 接下来就可以写getriqidb这个判断function里，比如： function getriqidb(content) { document.getElementById(&#8216;content&#8217;).innerHTML=content &#8230;&#8230;&#8230;&#8230;. } 注意，这里其实是一个用来显示经过远端计算页面计算返回的结果的方法来的，比如远端的页面a.php收到参数后，经过计算，异步返回给页面内容content,就可以在这里输出拉，比如上文提到的，根据返回的结果来填充下拉列表框。 最后，我们写那个远端判断的页面a.php &#60;? if($_GET['rs'] == &#8216;riqi&#8217;) { $yearend=$_GET['rsargs'][0]; &#8230;. //之后做相关的业务逻辑计算 } 这里，用$_get['rs']来判断是否等于“riqi&#8221;，&#8221;riqi&#8221;是之前我们定义好的（sajax_export(&#8220;riqi&#8221;);）， 如果是的话，则表示是来自sajax的请求，注意 $_get['rs']也是固定的，不能改变。 [...]


Related posts:<ol><li><a href='http://cq-cser.cn/2010/02/simpleviewer/' rel='bookmark' title='Permanent Link: SimpleViewer'>SimpleViewer</a></li>
<li><a href='http://cq-cser.cn/2010/02/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b04/' rel='bookmark' title='Permanent Link: jquery学习笔记4'>jquery学习笔记4</a></li>
<li><a href='http://cq-cser.cn/2010/02/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b03/' rel='bookmark' title='Permanent Link: jquery学习笔记3'>jquery学习笔记3</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.modernmethod.com/sajax/">http://www.modernmethod.com/sajax/</a></p>
<p> 使用sajax其实很简单，首先当然要包含sajax这个文件<br />
   require(&#8220;Sajax.php&#8221;);</p>
<p>$sajax_remote_uri = &#8220;<a href="http://a..php">http://a..php</a>;&#8221;    //这里是远程要处理判断结果的一个页面</p>
<p><span id="more-988"></span><br />
sajax_init();  //Sajax初始化函数，看过Sajax.php的都知道，其实这个函数的内容是空的，这里写的目的就是告诉你这个页面会使用Sajax。因为Sajax并不是一个类，而是一个函数集，所以不需要建立对象，实际应用中不执行这个函数也没有关系。<br />
sajax_export(&#8220;riqi&#8221;);</p>
<p>//用sajax_export定义将要在Javascript输出的函数，也就是从HTML页面中可以使用的函数。将函数的名字传递给sajax_export，如果多个函数可以向sajax_export传递多个参数来实现<br />
sajax_handle_client_request();<br />
//处理客户端需求函数，开始访问页面的时候不会起作用，但是当客户端将需求（运行哪个函数，参数是多少等等）传递过来的时候就由这个来处理了。<br />
好了，后台的PHP部分结束，下面是HTML显示部分，纯粹的HTML基础就不管了，只说和Sajax使用有关的部分</p>
<p>&lt;?<br />
sajax_show_javascript();<br />
//显示Sajax生成的Javascript，<br />
?&gt;</p>
<p>接下来我们写处理的函数<br />
比如在那个“确定”按钮的onclick事件中，如下写：</p>
<p>function getriqi()<br />
{<br />
 var yearend=frm.yend.value<br />
    。。。。。。。<br />
     x_riqi(yearend,getriqidb);</p>
<p>}<br />
这里比如可以先获得要判断计算的值（比如这里的yearend),然后注意<br />
x_riqi(yearend,getriqidb)这句话<br />
这里的riqi函数，是在前面PHP中用sajax_export定义，由sajax_show_javascript输出的函数之一，其格式就是你在sajax_export中定义的函数名前面加x_。，接着可以把要传递的参数一个个接着写下去。</p>
<p>接下来就可以写getriqidb这个判断function里，比如：<br />
function getriqidb(content)<br />
{<br />
document.getElementById(&#8216;content&#8217;).innerHTML=content<br />
&#8230;&#8230;&#8230;&#8230;.<br />
}<br />
注意，这里其实是一个用来显示经过远端计算页面计算返回的结果的方法来的，比如远端的页面a.php收到参数后，经过计算，异步返回给页面内容content,就可以在这里输出拉，比如上文提到的，根据返回的结果来填充下拉列表框。<br />
最后，我们写那个远端判断的页面a.php<br />
&lt;?<br />
if($_GET['rs'] == &#8216;riqi&#8217;)<br />
{<br />
$yearend=$_GET['rsargs'][0];<br />
&#8230;.<br />
//之后做相关的业务逻辑计算</p>
<p>}<br />
这里，用$_get['rs']来判断是否等于“riqi&#8221;，&#8221;riqi&#8221;是之前我们定义好的（sajax_export(&#8220;riqi&#8221;);），<br />
如果是的话，则表示是来自sajax的请求，注意 $_get['rs']也是固定的，不能改变。<br />
之后用 $_GET['rsargs'][0]来取出第一个参数，如此类推。。。。。</p>
<p>最后，要将结果返回给前端的页面，用<br />
 echo(&#8220;##&#8221;.$content);<br />
注意，这里的输出内容变量$content,要和前端页面里function getriqidb(content)里的定义好的content在命名上是相同的哦。</p>
<p>而可能是sajax的一个BUG（在IBM DW站上有说），在输出时，前端会没了两个字符，比如要输出的内容为2004，会变成04,而在前面加上##时，就正确了</p>
<h2>Examples</h2>
<p>Here are two overly simplistic examples:</p>
<p>Graffiti Wall: → <a href="http://cq-cser.cn/wp-admin/sajax-0.12/php/example_wall.php">Try it</a> or <a href="http://cq-cser.cn/wp-admin/sajax-0.12/php/example_wall.php.txt">see source</a></p>
<p>Calculator: → <a href="http://cq-cser.cn/wp-admin/sajax-0.12/php/example_multiply.php">Try it</a> or <a href="http://cq-cser.cn/wp-admin/sajax-0.12/php/example_multiply.php.txt">see source</a></p>
<p>Still confused? Read our <a href="http://cq-cser.cn/wp-admin/faq.phtml">Frequently Asked Questions</a> or ask for help in our <a href="http://cq-cser.cn/wp-admin/forum/">message board</a>.</p>
<h2>Download Now</h2>
<p> </p>
<p>The most recent version <strong>0.12</strong>, including code and examples:</p>
<div><a href="http://cq-cser.cn/wp-admin/sajax-0.12.tgz">Download sajax-0.12.tgz</a> <a href="http://cq-cser.cn/wp-admin/sajax-0.12.zip">Download sajax-0.12.zip</a></div>
<p> </p>
<p>Version 0.12, code only: <a href="http://cq-cser.cn/wp-admin/sajax-0.12/php/Sajax.php.txt">Sajax.php.txt</a></p>


<p>Related posts:<ol><li><a href='http://cq-cser.cn/2010/02/simpleviewer/' rel='bookmark' title='Permanent Link: SimpleViewer'>SimpleViewer</a></li>
<li><a href='http://cq-cser.cn/2010/02/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b04/' rel='bookmark' title='Permanent Link: jquery学习笔记4'>jquery学习笔记4</a></li>
<li><a href='http://cq-cser.cn/2010/02/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b03/' rel='bookmark' title='Permanent Link: jquery学习笔记3'>jquery学习笔记3</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://cq-cser.cn/2010/03/sajaxphp%e4%b8%8bajax%e7%ae%80%e6%98%93%e6%a1%86%e6%9e%b6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>前端开发部分总结[兼容性、DOM操作、跨域等]</title>
		<link>http://cq-cser.cn/2010/03/%e5%89%8d%e7%ab%af%e5%bc%80%e5%8f%91%e9%83%a8%e5%88%86%e6%80%bb%e7%bb%93%e5%85%bc%e5%ae%b9%e6%80%a7%e3%80%81dom%e6%93%8d%e4%bd%9c%e3%80%81%e8%b7%a8%e5%9f%9f%e7%ad%89/</link>
		<comments>http://cq-cser.cn/2010/03/%e5%89%8d%e7%ab%af%e5%bc%80%e5%8f%91%e9%83%a8%e5%88%86%e6%80%bb%e7%bb%93%e5%85%bc%e5%ae%b9%e6%80%a7%e3%80%81dom%e6%93%8d%e4%bd%9c%e3%80%81%e8%b7%a8%e5%9f%9f%e7%ad%89/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 05:09:43 +0000</pubDate>
		<dc:creator>cq</dc:creator>
				<category><![CDATA[JS]]></category>
		<category><![CDATA[WEB]]></category>
		<category><![CDATA[Dom]]></category>
		<category><![CDATA[跨域]]></category>

		<guid isPermaLink="false">http://cq-cser.cn/?p=941</guid>
		<description><![CDATA[ 作者: 木子博客 发表于 2010-03-03 23:33 原文链接 项目背景：.Net 3.5+MySQL+jQuery+WebService 在公司做这个项目已经6个多月了，总结一些问题，也算是抛砖引玉吧，希望园子里更多的朋友一起分享一些技巧。 1、 WebService方法返回值不能为void。 当WebService方法返回值为void时，FF和Chrome会持续等待，认为这个请求没有结束，而在IE中一切是正常的。 2、当input的type=&#8221;button&#8221;时或者使用button时，点击后会触发form的submit。 当时查找页面刷新的问题找了很久，最后才发现是button会自动触发form的submit，导致当前页面的刷新。 3、js设置document.domain只能从二级域名设置到顶级域名。 比如访问moozi.cnblogs.com，可以在这个页面中写document.domain=&#8217;cnblogs.com&#8217;;如果把域设置为cnblogs.com之后，无法再使用document.domain=&#8217;moozi.cnblogs.com&#8217;;。 4、使用DOM片段创建iframe，当跨域时，不能用js写iframe的域。 比如你在moozi.cnblogs.com/test.html页面用js把域设置为document.domain=&#8217;cnblogs.com&#8217;，而此时你再用var ifrm=createElement(&#8216;iframe&#8217;) ，这时将不能用js设置iframe的域也为&#8217;cnblogs.com&#8217;，只能让ifrm.src=&#8217;test2.htm&#8217;，并在test2.htm中设置域document.domain=&#8217;cnblogs.com&#8217;。 5、当你修改过当前域的时候，CKEditor是正常的，而tinyMCE需要重新设置域。  CKEditor能自动识别当前域，并不出错。tinyMCE需要人为的设置。同时，如果你是用CKFinder上传文件，而需要修改它的输入代码，不然会因为域不同而出现没有权限的错误提示。 6、使用tinyMCE，尽管你的初始化代码只有一句，但是可能出现多次初如化。发生原因未知，在不确定的情况下会出现此BUG。 7、开发js组件的时候，要时刻注意闭包和this的指代，这方面之前吃了不少亏。 8、将字符串转换成jQuery对象时，要注意字符串html代码的闭合标签。  比如：var html=&#8217;&#60;span&#62;test&#60;/span&#62;&#38;nbsp;&#8217;var jqEl=$(html);此时，jqEl会把html里的&#8217;&#38;nbsp;&#8217;丢掉。 9、jQuery1.2.6和jQuery1.3在细节的处理上有一些区别。 jQuery1.2.6处理hasClass(&#8216;.className&#8217;)会出错，而jQuery1.3不会。 10、尽量少用jQuery的each，多用js原生的代码，性能较高。 Related posts:一级域名和二级域名跨域的解决方案 JQuery进行跨域请求


Related posts:<ol><li><a href='http://cq-cser.cn/2010/01/%e4%b8%80%e7%ba%a7%e5%9f%9f%e5%90%8d%e5%92%8c%e4%ba%8c%e7%ba%a7%e5%9f%9f%e5%90%8d%e8%b7%a8%e5%9f%9f%e7%9a%84%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88/' rel='bookmark' title='Permanent Link: 一级域名和二级域名跨域的解决方案'>一级域名和二级域名跨域的解决方案</a></li>
<li><a href='http://cq-cser.cn/2010/01/jquery%e8%bf%9b%e8%a1%8c%e8%b7%a8%e5%9f%9f%e8%af%b7%e6%b1%82/' rel='bookmark' title='Permanent Link: JQuery进行跨域请求'>JQuery进行跨域请求</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div> 作者: <a href="http://www.cnblogs.com/moozi/" target="_blank">木子博客</a> 发表于 2010-03-03 23:33 <a href="http://www.cnblogs.com/moozi/archive/2010/03/03/1677843.html" target="_blank">原文链接</a></div>
<div>
<div>
<p>项目背景：.Net 3.5+MySQL+jQuery+WebService</p>
<p>在公司做这个项目已经6个多月了，总结一些问题，也算是抛砖引玉吧，希望园子里更多的朋友一起分享一些技巧。</p>
<p>1、 WebService方法返回值不能为void。</p>
<p>当WebService方法返回值为void时，FF和Chrome会持续等待，认为这个请求没有结束，而在IE中一切是正常的。</p>
<p>2、当input的type=&#8221;button&#8221;时或者使用button时，点击后会触发form的submit。</p>
<p>当时查找页面刷新的问题找了很久，最后才发现是button会自动触发form的submit，导致当前页面的刷新。</p>
<p>3、js设置document.domain只能从二级域名设置到顶级域名。<span id="more-941"></span></p>
<p>比如访问moozi.cnblogs.com，可以在这个页面中写document.domain=&#8217;cnblogs.com&#8217;;如果把域设置为cnblogs.com之后，无法再使用document.domain=&#8217;moozi.cnblogs.com&#8217;;。</p>
<p>4、使用DOM片段创建iframe，当跨域时，不能用js写iframe的域。</p>
<p>比如你在moozi.cnblogs.com/test.html页面用js把域设置为document.domain=&#8217;cnblogs.com&#8217;，而此时你再用var ifrm=createElement(&#8216;iframe&#8217;) ，这时将不能用js设置iframe的域也为&#8217;cnblogs.com&#8217;，只能让ifrm.src=&#8217;test2.htm&#8217;，并在test2.htm中设置域document.domain=&#8217;cnblogs.com&#8217;。</p>
<p>5、当你修改过当前域的时候，CKEditor是正常的，而tinyMCE需要重新设置域。</p>
<p> CKEditor能自动识别当前域，并不出错。tinyMCE需要人为的设置。同时，如果你是用CKFinder上传文件，而需要修改它的输入代码，不然会因为域不同而出现没有权限的错误提示。</p>
<p>6、使用tinyMCE，尽管你的初始化代码只有一句，但是可能出现多次初如化。发生原因未知，在不确定的情况下会出现此BUG。</p>
<p>7、开发js组件的时候，要时刻注意闭包和this的指代，这方面之前吃了不少亏。</p>
<p>8、将字符串转换成jQuery对象时，要注意字符串html代码的闭合标签。</p>
<p> 比如：var html=&#8217;&lt;span&gt;test&lt;/span&gt;&amp;nbsp;&#8217;var jqEl=$(html);此时，jqEl会把html里的&#8217;&amp;nbsp;&#8217;丢掉。</p>
<p>9、jQuery1.2.6和jQuery1.3在细节的处理上有一些区别。</p>
<p>jQuery1.2.6处理hasClass(&#8216;.className&#8217;)会出错，而jQuery1.3不会。</p>
<p>10、尽量少用jQuery的each，多用js原生的代码，性能较高。</p></div>
</div>


<p>Related posts:<ol><li><a href='http://cq-cser.cn/2010/01/%e4%b8%80%e7%ba%a7%e5%9f%9f%e5%90%8d%e5%92%8c%e4%ba%8c%e7%ba%a7%e5%9f%9f%e5%90%8d%e8%b7%a8%e5%9f%9f%e7%9a%84%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88/' rel='bookmark' title='Permanent Link: 一级域名和二级域名跨域的解决方案'>一级域名和二级域名跨域的解决方案</a></li>
<li><a href='http://cq-cser.cn/2010/01/jquery%e8%bf%9b%e8%a1%8c%e8%b7%a8%e5%9f%9f%e8%af%b7%e6%b1%82/' rel='bookmark' title='Permanent Link: JQuery进行跨域请求'>JQuery进行跨域请求</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://cq-cser.cn/2010/03/%e5%89%8d%e7%ab%af%e5%bc%80%e5%8f%91%e9%83%a8%e5%88%86%e6%80%bb%e7%bb%93%e5%85%bc%e5%ae%b9%e6%80%a7%e3%80%81dom%e6%93%8d%e4%bd%9c%e3%80%81%e8%b7%a8%e5%9f%9f%e7%ad%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript实现网页水印[zz]</title>
		<link>http://cq-cser.cn/2010/03/javascript%e5%ae%9e%e7%8e%b0%e7%bd%91%e9%a1%b5%e6%b0%b4%e5%8d%b0zz/</link>
		<comments>http://cq-cser.cn/2010/03/javascript%e5%ae%9e%e7%8e%b0%e7%bd%91%e9%a1%b5%e6%b0%b4%e5%8d%b0zz/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 16:22:06 +0000</pubDate>
		<dc:creator>cq</dc:creator>
				<category><![CDATA[JS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[水印]]></category>

		<guid isPermaLink="false">http://cq-cser.cn/?p=931</guid>
		<description><![CDATA[1 概述 1.1  定义        在一些B/S结构的应用系统中，有很多页面是需要有水印的。常见的就是公文系统、合同系统等。大家常常关注的是网站图片增加水印，而很少关注页面水印。刚去Google了一圈，关于页面水印的文章的数量为几乎为0. 本文中，流牛木马就与大家一起交流一下有关制作网页水印的心得。     本文讨论以下的情形： 新增水印的方法需要用Javascript完成，并要求能够方便地加入到原有的页面中，不能影响到已有的功能。 1.2 预期目标 就图片水印实现方案来说，我们预期至少包括以下几个目标： 1. 实现悬浮、半透明的图片水印 2. 包含水印的页面，所有元素均为只读(不可写) 3. 在包含框架页面中，可以控制任意一个子页面或父页面的水印生成 4. 在页面放大、缩小(resize过程)后，需要在保证页面不刷新的前提下，重新生成适应页面大小的新水印，以保证所有内容都被水印覆盖，并且不会因水印图片范围过大而产生滚动条。 5. 支持IE6\7\8浏览器。暂不考虑其他浏览器。 1.3 效果图 加密前： 加密后： 可以打开附件里的文件进行查看。 2 实现步骤 2.1 基本构思 加密的过程是一个Javascript函数执行过程，所以我们首先应该考虑用Javascript操作DOM对象的方式。 在已有的HTML页面中，新建一个DOM对象在Body节点下。该对象的长、宽均经过计算，保证在覆盖全部页面内容的同时又不产生滚动条。将该对象覆盖到原有的页面之上，设置背景图，并设置为透明。 创建新DOM元素： 使用document对象里的createElement方法。创建元素后，设置它的z-index为一个大整数，保证它能够比已有网页的最大z-index大，才能完成“覆盖”。 计算新对象大小： 利用三个DOM对象值： clientWidth 、scrollHeight与clientHeight. 网页中一般不会出现横向滚动条，故不使用scrollWidth. 而纵向的滚动条就很常见了。 为了保证页面内容全部覆盖，在未出现滚动条的时候，使用clientHeight，出现滚动条后，则使用scrollHeight。 设置透明： 利用Alpha值。Alpha是IE支持的css filter。 2.2 应变细节 有一个小细节是很有意思的，前文也提过了，就是resize的过程。 试想，当一个页面打开的时候是550px×400px，那么自然会生成550px×400px大小的水印。但当用户对它进行最大化时，页面没有刷新，不会重新执行生成水印的函数，那么以前生产的水印图片就太小了。 如下图所示的情况。请注意，它的右侧、下侧都是没有水印的。 为了应对这种情况，我们就需要对body的onresize()函数进行处理。如果以前定义没有onresize()函数，则直接添加onresize()；如果以前有onresize()函数，则对之进行修改。 2.3 最终代码 考虑到框架页面需要考虑的情况，该方法包括三个参数： [...]


Related posts:<ol><li><a href='http://cq-cser.cn/2009/12/javascript-%e4%bb%bflightbox/' rel='bookmark' title='Permanent Link: JavaScript 仿LightBox'>JavaScript 仿LightBox</a></li>
<li><a href='http://cq-cser.cn/2009/11/%e4%bb%bf%e8%bf%85%e9%9b%b7%e5%8d%9a%e5%ae%a2%e7%94%a8%e6%88%b7%e7%99%bb%e9%99%86%e5%bc%b9%e5%87%ba%e7%aa%97%e5%8f%a3/' rel='bookmark' title='Permanent Link: 仿迅雷博客用户登陆弹出窗口'>仿迅雷博客用户登陆弹出窗口</a></li>
<li><a href='http://cq-cser.cn/2010/01/%e7%a6%81%e6%ad%a2%e5%8f%b3%e9%94%ae%e4%bb%a3%e7%a0%81/' rel='bookmark' title='Permanent Link: 禁止右键代码'>禁止右键代码</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<h3><a name="_Toc253229406"></a><a name="_Toc253086791"><span style="color: #000000;">1<strong> 概述</strong></span></a></h3>
<p><a name="_Toc253229407"><strong><span style="color: #000000;">1.1</span> </strong><strong> </strong></a><strong>定义</strong><strong> </strong></p>
<blockquote><p>      在一些B/S结构的应用系统中，有很多页面是需要有水印的。常见的就是公文系统、合同系统等。大家常常关注的是网站图片增加水印，而很少关注页面水印。刚去Google了一圈，关于页面水印的文章的数量为几乎为0. 本文中，流牛木马就与大家一起交流一下有关制作网页水印的心得。<span id="more-931"></span></p></blockquote>
<blockquote><p>    本文讨论以下的情形： 新增水印的方法需要用Javascript完成，并要求能够方便地加入到原有的页面中，不能影响到已有的功能。</p></blockquote>
<p><strong>1.2 </strong><strong></strong><strong>预期目标</strong></p>
<blockquote><p>就图片水印实现方案来说，我们预期至少包括以下几个目标：</p></blockquote>
<blockquote><p>1. 实现悬浮、半透明的图片水印</p></blockquote>
<blockquote><p>2. 包含水印的页面，所有元素均为只读(不可写)</p></blockquote>
<blockquote><p>3. 在包含框架页面中，可以控制任意一个子页面或父页面的水印生成</p></blockquote>
<blockquote><p>4. 在页面放大、缩小(resize过程)后，需要在保证页面不刷新的前提下，重新生成适应页面大小的新水印，以保证所有内容都被水印覆盖，并且不会因水印图片范围过大而产生滚动条。</p>
<p><span style="color: red;"><strong>5. 支持IE6\7\8浏览器。暂不考虑其他浏览器。</strong></span></p></blockquote>
<p><strong>1.3 </strong><strong></strong><strong>效果图</strong></p>
<p>加密前：</p>
<p><a href="http://images.cnblogs.com/cnblogs_com/azure/WindowsLiveWriter/5614109a500e_1320E/clip_image002_2.jpg" target="_blank"><img style="display: inline; border: 0px;" title="clip_image002" src="http://images.cnblogs.com/cnblogs_com/azure/WindowsLiveWriter/5614109a500e_1320E/clip_image002_thumb.jpg" border="0" alt="clip_image002" width="604" height="382" /></a></p>
<p>加密后：</p>
<p><a href="http://images.cnblogs.com/cnblogs_com/azure/WindowsLiveWriter/5614109a500e_1320E/clip_image004_2.jpg" target="_blank"><img style="display: inline; border: 0px;" title="clip_image004" src="http://images.cnblogs.com/cnblogs_com/azure/WindowsLiveWriter/5614109a500e_1320E/clip_image004_thumb.jpg" border="0" alt="clip_image004" width="604" height="382" /></a></p>
<p>可以打开附件里的文件进行查看。</p>
<h3>2 实现步骤</h3>
<p><strong>2.1 </strong><strong></strong><strong>基本构思</strong></p>
<blockquote><p>加密的过程是一个Javascript函数执行过程，所以我们首先应该考虑用Javascript操作DOM对象的方式。</p></blockquote>
<blockquote><p>在已有的HTML页面中，新建一个DOM对象在Body节点下。该对象的长、宽均经过计算，保证在覆盖全部页面内容的同时又不产生滚动条。将该对象覆盖到原有的页面之上，设置背景图，并设置为透明。</p></blockquote>
<p><strong>创建新DOM元素：</strong></p>
<p>使用document对象里的createElement方法。创建元素后，设置它的z-index为一个大整数，保证它能够比已有网页的最大z-index大，才能完成“覆盖”。</p>
<p><strong>计算新对象大小</strong>：</p>
<p>利用三个DOM对象值：<a name="OLE_LINK2"></a><a name="OLE_LINK1"> clientWidth </a>、scrollHeight与clientHeight.</p>
<p>网页中一般不会出现横向滚动条，故不使用scrollWidth.</p>
<p>而纵向的滚动条就很常见了。</p>
<p>为了保证页面内容全部覆盖，在未出现滚动条的时候，使用clientHeight，出现滚动条后，则使用scrollHeight。</p>
<p><strong></strong></p>
<p><strong>设置透明</strong>：</p>
<p>利用Alpha值。Alpha是IE支持的css filter。</p>
<p><strong>2.2 </strong><strong></strong><strong>应变细节</strong></p>
<p>有一个小细节是很有意思的，前文也提过了，就是resize的过程。</p>
<p>试想，当一个页面打开的时候是550px×400px，那么自然会生成550px×400px大小的水印。但当用户对它进行最大化时，页面没有刷新，不会重新执行生成水印的函数，那么以前生产的水印图片就太小了。</p>
<p>如下图所示的情况。请注意，它的右侧、下侧都是没有水印的。</p>
<p><a href="http://images.cnblogs.com/cnblogs_com/azure/WindowsLiveWriter/5614109a500e_1320E/clip_image006_2.jpg" target="_blank"><img style="display: inline; border: 0px;" title="clip_image006" src="http://images.cnblogs.com/cnblogs_com/azure/WindowsLiveWriter/5614109a500e_1320E/clip_image006_thumb.jpg" border="0" alt="clip_image006" width="724" height="518" /></a></p>
<p>为<a name="OLE_LINK4"></a><a name="OLE_LINK3">了应对这种情况，我们就需要对body的onresize()函数进行处理。如果以前定义没</a>有onresize()函数，则直接添加onresize()；如果以前有onresize()函数，则对之进行修改。</p>
<p><strong>2.3 </strong><strong></strong><strong>最终代码</strong></p>
<p>考虑到框架页面需要考虑的情况，该方法包括三个参数： 目标页面对象、目标页面字符串、 背景图片。</p>
<p>function GetWaterMarked(targetObj,jpgUrl,targetStr ) {</p>
<p>var windowobj=targetObj;</p>
<p>var waterMarkPicUrl=jpgUrl;</p>
<p>var controlWindowStr=targetStr;</p>
<p>if(windowobj.document.getElementById(&#8220;waterMark&#8221;) != null)</p>
<p>return;</p>
<p>var m = &#8220;waterMark&#8221;;</p>
<p>var newMark = windowobj.document.createElement(&#8220;div&#8221;);</p>
<p>newMark.id = m;</p>
<p>newMark.style.position = &#8220;absolute&#8221;;</p>
<p>newMark.style.zIndex = &#8220;9527&#8243;;</p>
<p>newMark.style.top = &#8220;0px&#8221;;</p>
<p>newMark.style.left = &#8220;0px&#8221;;</p>
<p>newMark.style.width = windowobj.document.body.clientWidth;</p>
<p>if( parseInt(windowobj.document.body.scrollHeight) &gt; parseInt(windowobj.document.body.clientHeight) )</p>
<p>{</p>
<p>newMark.style.height = windowobj.document.body.scrollHeight;</p>
<p>}else</p>
<p>{</p>
<p>newMark.style.height = windowobj.document.body.clientHeight;</p>
<p>}</p>
<p>newMark.style.backgroundImage = &#8220;url(&#8220;+ waterMarkPicUrl +&#8221;)&#8221;;</p>
<p>newMark.style.filter = &#8220;alpha(opacity=50)&#8221;;</p>
<p>windowobj.document.body.appendChild(newMark);</p>
<p>var markStr = &#8220;var sobj =&#8221;+controlWindowStr+&#8221;.document.getElementById(&#8216;waterMark&#8217;);sobj.style.width =&#8221;+controlWindowStr+&#8221;.document.body.clientWidth;sobj.style.height =&#8221;+controlWindowStr+&#8221;.document.body.clientHeight;&#8221;;</p>
<p>if(windowobj.document.body.onresize != null)</p>
<p>{</p>
<p>var oldResiae = windowobj.document.body.onresize.toString();</p>
<p>var oldResiaeStr = oldResiae.substr(oldResiae.indexOf(&#8220;{&#8220;)+1);</p>
<p>var oldResiaeStr= oldResiaeStr.substr(0,oldResiaeStr.lastIndexOf(&#8220;}&#8221;));</p>
<p>oldResiaeStr+=&#8221;;&#8221;+markStr;</p>
<p>windowobj.document.body.onresize = new Function(oldResiaeStr);</p>
<p>}</p>
<p>else</p>
<p>{</p>
<p>windowobj.document.body.onresize = new Function(markStr);</p>
<p>}</p>
<p>}</p>
<h3>3 原有页面处理</h3>
<p>需要在原有的&lt;body&gt;标签处加入一个onload方法。如：</p>
<p>&lt;body onload=&#8221;GetWaterMarked(window,&#8217;watermark.jpg&#8217;,'this&#8217;)&#8221;&gt;</p>
<h3>4 附件</h3>
<p>http://files.cnblogs.com/azure/%E6%B0%B4%E5%8D%B0.rar</p>


<p>Related posts:<ol><li><a href='http://cq-cser.cn/2009/12/javascript-%e4%bb%bflightbox/' rel='bookmark' title='Permanent Link: JavaScript 仿LightBox'>JavaScript 仿LightBox</a></li>
<li><a href='http://cq-cser.cn/2009/11/%e4%bb%bf%e8%bf%85%e9%9b%b7%e5%8d%9a%e5%ae%a2%e7%94%a8%e6%88%b7%e7%99%bb%e9%99%86%e5%bc%b9%e5%87%ba%e7%aa%97%e5%8f%a3/' rel='bookmark' title='Permanent Link: 仿迅雷博客用户登陆弹出窗口'>仿迅雷博客用户登陆弹出窗口</a></li>
<li><a href='http://cq-cser.cn/2010/01/%e7%a6%81%e6%ad%a2%e5%8f%b3%e9%94%ae%e4%bb%a3%e7%a0%81/' rel='bookmark' title='Permanent Link: 禁止右键代码'>禁止右键代码</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://cq-cser.cn/2010/03/javascript%e5%ae%9e%e7%8e%b0%e7%bd%91%e9%a1%b5%e6%b0%b4%e5%8d%b0zz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jquery学习笔记4</title>
		<link>http://cq-cser.cn/2010/02/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b04/</link>
		<comments>http://cq-cser.cn/2010/02/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b04/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 12:36:06 +0000</pubDate>
		<dc:creator>cq</dc:creator>
				<category><![CDATA[JS]]></category>
		<category><![CDATA[OTHER]]></category>

		<guid isPermaLink="false">http://cq-cser.cn/?p=901</guid>
		<description><![CDATA[$.get(&#8220;get1.php&#8221;, $(&#8220;#form1&#8243;).serialize() , function (data, textStatus){ 5 $(&#8220;#resText&#8221;).html(data); // 把返回的数据添加到页面上 6 } 7 ); serialize()方法，参见http://api.jquery.com/serialize/ $.get(&#8220;get1.php&#8221;, &#8220;username=&#8221;+encodeURIComponent($(&#8216;#username&#8217;).val())+&#8221;&#38;content=&#8221;+encodeURIComponent($(&#8216;#content&#8217;).val()), function (data, textStatus){ 6 $(&#8220;#resText&#8221;).html(data); // 把返回的数据添加到页面上 7 } 8 ); 顺便附带get1.php的代码 &#60;?php  header(&#8220;Content-Type:text/html; charset=utf-8&#8243;);  echo &#8220;&#60;div class=&#8217;comment&#8217;&#62;&#60;h6&#62;{$_REQUEST['username']}:&#60;/h6&#62;&#60;p class=&#8217;para&#8217;&#62;{$_REQUEST['content']}&#60;/p&#62;&#60;/div&#62;&#8221;; ?&#62;  接着是AJAXEVENT函数，及AJAX事件函数  $(&#8220;#loading&#8221;).ajaxStart(function(){ 32 $(this).show(); 33 }); 34 $(&#8220;#loading&#8221;).ajaxStop(function(){ 35 $(this).hide(); 36 }); //ID=LOADING的是一个图片，也可以是一个DIV包含的动画啦，随便看个人喜好 下面是个聊天室实例 &#60;script type=&#8221;text/javascript&#8221;&#62;  //&#60;![CDATA[   $(function(){ [...]


Related posts:<ol><li><a href='http://cq-cser.cn/2010/02/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b03/' rel='bookmark' title='Permanent Link: jquery学习笔记3'>jquery学习笔记3</a></li>
<li><a href='http://cq-cser.cn/2010/03/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b05/' rel='bookmark' title='Permanent Link: JQUERY学习笔记5'>JQUERY学习笔记5</a></li>
<li><a href='http://cq-cser.cn/2010/02/wordpress%e5%a4%87%e4%bb%bd%e6%95%b0%e6%8d%ae%e5%af%bc%e5%85%a5/' rel='bookmark' title='Permanent Link: wordpress备份数据导入'>wordpress备份数据导入</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div><span>$.get(&#8220;get1.php&#8221;, $(&#8220;#form1&#8243;).serialize() , function (data, textStatus){ </span></div>
<div><span>5</span><span> $(&#8220;#resText&#8221;).html(data); // 把返回的数据添加到页面上 </span></div>
<div><span>6</span><span> } </span></div>
<div><span>7</span><span> ); </span></div>
<div><span>serialize()方法，参见<a href="http://api.jquery.com/serialize/">http://api.jquery.com/serialize/</a></span></div>
<div><span><span id="more-901"></span></span></div>
<div><span></span></div>
<div><span>$.get(&#8220;get1.php&#8221;, &#8220;username=&#8221;+encodeURIComponent($(&#8216;#username&#8217;).val())+&#8221;&amp;content=&#8221;+encodeURIComponent($(&#8216;#content&#8217;).val()), function (data, textStatus){ </span></div>
<div><span>6</span><span> $(&#8220;#resText&#8221;).html(data); // 把返回的数据添加到页面上 </span></div>
<div><span>7</span><span> } </span></div>
<div><span>8</span><span> ); </span></div>
<div><span>顺便附带get1.php的代码</span></div>
<div><span>&lt;?php<br />
 header(&#8220;Content-Type:text/html; charset=utf-8&#8243;);<br />
 echo &#8220;&lt;div class=&#8217;comment&#8217;&gt;&lt;h6&gt;{$_REQUEST['username']}:&lt;/h6&gt;&lt;p class=&#8217;para&#8217;&gt;{$_REQUEST['content']}&lt;/p&gt;&lt;/div&gt;&#8221;;<br />
?&gt;</span></div>
<div><span> 接着是AJAXEVENT函数，及AJAX事件函数</span> </div>
<div><span>$(&#8220;#loading&#8221;).ajaxStart(function(){ </span></div>
<div><span>32</span><span> $(this).show(); </span></div>
<div><span>33</span><span> }); </span></div>
<div><span>34</span><span> $(&#8220;#loading&#8221;).ajaxStop(function(){ </span></div>
<div><span>35</span><span> $(this).hide(); </span></div>
<div><span>36</span><span> }); //ID=LOADING的是一个图片，也可以是一个DIV包含的动画啦，随便看个人喜好</span></div>
<div><span>下面是个聊天室实例</span></div>
<div><span>&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
 //&lt;![CDATA[<br />
  $(function(){<br />
      //定义时间戳<br />
   timestamp = 0;<br />
   //调用更新信息函数<br />
   updateMsg();<br />
   //表单提交<br />
   $("#chatform").submit(function(){<br />
    $.post("backend.php",{<br />
       message: $("#msg").val(),<br />
       name: $("#author").val(),<br />
       action: "postmsg",<br />
       time: timestamp<br />
      }, function(xml) {<br />
     //清空信息文本框内容<br />
     $("#msg").val("");<br />
     //调用解析xml的函数<br />
     addMessages(xml);<br />
    });<br />
    return false; //阻止表单提交<br />
   });<br />
  });<br />
        //更新信息函数，每隔一定时间去服务端读取数据<br />
  function updateMsg(){<br />
   $.post("backend.php",{ time: timestamp }, function(xml) {<br />
    //移除掉 等待提示<br />
    $("#loading").remove();<br />
    //调用解析xml的函数<br />
    addMessages(xml);<br />
   });<br />
    //每隔4秒，读取一次.<br />
   setTimeout('updateMsg()', 4000);<br />
  }<br />
        //解析xml文档函数，把数据显示到页面上<br />
  function addMessages(xml) {<br />
      //如果状态为2，则终止<br />
   if($("status",xml).text() == "2") return;<br />
   //更新时间戳<br />
   timestamp = $("time",xml).text();<br />
   //$.each循环数据<br />
   $("message",xml).each(function() {<br />
       var author = $("author",this).text(); //发布者<br />
    var content = $("text",this).text();  //内容<br />
    var htmlcode = "&lt;strong&gt;"+author+"&lt;/strong&gt;: "+content+"&lt;br /&gt;";<br />
    $("#messagewindow").prepend( htmlcode ); //添加到文档中<br />
   });<br />
  }<br />
 //]]&gt;<br />
 &lt;/script&gt;</span></div>
<div><span>demo.xml</span></div>
<div><span>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;<br />
&lt;response&gt;<br />
 &lt;status&gt;1&lt;/status&gt;<br />
 &lt;time&gt;1170323512&lt;/time&gt;<br />
 &lt;message&gt;<br />
   &lt;author&gt;张三&lt;/author&gt;<br />
   &lt;text&gt;沙发!&lt;/text&gt;<br />
 &lt;/message&gt;<br />
 &lt;message&gt;<br />
   &lt;author&gt;李四&lt;/author&gt;<br />
   &lt;text&gt;板凳!&lt;/text&gt;<br />
 &lt;/message&gt;<br />
&lt;/response&gt;</span></div>
<div><span>backend.php后台程序：</span></div>
<div><span>&lt;?php<br />
// 配置信息：<br />
// 1,数据库连接的具体信息<br />
// 2,我们要存储的消息的数目<br />
// 3,用户进到聊天室的时候消息显示的数目<br />
$dbhost = &#8220;localhost&#8221;;<br />
$dbuser = &#8220;root&#8221;;<br />
$dbpass = &#8220;root&#8221;;<br />
$dbname = &#8220;chat&#8221;;<br />
$store_num = 10;<br />
$display_num = 10;</span></p>
<div> </div>
<p> </p></div>
<p>// 错误报告<br />
error_reporting(E_ALL);</p>
<p>// 头部信息<br />
header(&#8220;Content-type: text/xml&#8221;);<br />
header(&#8220;Cache-Control: no-cache&#8221;);</p>
<p>//连接mysql<br />
$dbconn = mysql_connect($dbhost,$dbuser,$dbpass);<br />
mysql_select_db($dbname,$dbconn);</p>
<p>//为容易操作请求数据,我们为请求中的每个参数设置一个变量,每个变量将把请求中的参数值作为其自己的值<br />
//foreach语句遍历所有的POST数据,并且为每个参数创建一个变量,并且给它赋值<br />
foreach($_POST as $key =&gt; $value){<br />
 $$key = mysql_real_escape_string($value, $dbconn);<br />
}</p>
<p>//屏敝任何错误提示,判断action是否等于 postmsg<br />
if(@$action == &#8220;postmsg&#8221;){<br />
 //插入数据<br />
 mysql_query(&#8220;INSERT INTO messages (`user`,`msg`,`time`)<br />
              VALUES (&#8216;$name&#8217;,'$message&#8217;,&#8221;.time().&#8221;)&#8221;,$dbconn);<br />
 //删除数据(因为我们默认值存储10条数据)<br />
 mysql_query(&#8220;DELETE FROM messages WHERE id &lt;= &#8220;.<br />
    (mysql_insert_id($dbconn)-$store_num),$dbconn);<br />
}</p>
<p>//查询数据<br />
$messages = mysql_query(&#8220;SELECT user,msg<br />
       FROM messages<br />
       WHERE time&gt;$time<br />
       ORDER BY id ASC<br />
       LIMIT $display_num&#8221;,$dbconn);<br />
//是否有新记录<br />
if(mysql_num_rows($messages) == 0) $status_code = 2;<br />
else $status_code = 1;</p>
<p>//返回xml数据结构<br />
echo &#8220;&lt;?xml version=\&#8221;1.0\&#8221;?&gt;\n&#8221;;<br />
echo &#8220;&lt;response&gt;\n&#8221;;<br />
echo &#8220;\t&lt;status&gt;$status_code&lt;/status&gt;\n&#8221;;<br />
echo &#8220;\t&lt;time&gt;&#8221;.time().&#8221;&lt;/time&gt;\n&#8221;;<br />
if($status_code == 1){ //如果有记录<br />
 while($message = mysql_fetch_array($messages)){<br />
  $message['msg'] = htmlspecialchars(stripslashes($message['msg']));<br />
  echo &#8220;\t&lt;message&gt;\n&#8221;;<br />
  echo &#8220;\t\t&lt;author&gt;$message[user]&lt;/author&gt;\n&#8221;;<br />
  echo &#8220;\t\t&lt;text&gt;$message[msg]&lt;/text&gt;\n&#8221;;<br />
  echo &#8220;\t&lt;/message&gt;\n&#8221;;<br />
 }<br />
}<br />
echo &#8220;&lt;/response&gt;&#8221;;<br />
?&gt;</p>
<p>再来是数据库sql.sql</p>
<p>&#8211;Database &#8220;chat&#8221;</p>
<p>CREATE TABLE `messages` (<br />
  `id` int(7) NOT NULL auto_increment,<br />
  `user` varchar(255) NOT NULL,<br />
  `msg` text NOT NULL,<br />
  `time` int(9) NOT NULL,<br />
  PRIMARY KEY  (`id`)<br />
);</p>


<p>Related posts:<ol><li><a href='http://cq-cser.cn/2010/02/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b03/' rel='bookmark' title='Permanent Link: jquery学习笔记3'>jquery学习笔记3</a></li>
<li><a href='http://cq-cser.cn/2010/03/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b05/' rel='bookmark' title='Permanent Link: JQUERY学习笔记5'>JQUERY学习笔记5</a></li>
<li><a href='http://cq-cser.cn/2010/02/wordpress%e5%a4%87%e4%bb%bd%e6%95%b0%e6%8d%ae%e5%af%bc%e5%85%a5/' rel='bookmark' title='Permanent Link: wordpress备份数据导入'>wordpress备份数据导入</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://cq-cser.cn/2010/02/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b04/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jquery学习笔记3</title>
		<link>http://cq-cser.cn/2010/02/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b03/</link>
		<comments>http://cq-cser.cn/2010/02/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b03/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 12:04:32 +0000</pubDate>
		<dc:creator>cq</dc:creator>
				<category><![CDATA[JS]]></category>
		<category><![CDATA[OTHER]]></category>
		<category><![CDATA[JQUERY]]></category>

		<guid isPermaLink="false">http://cq-cser.cn/?p=899</guid>
		<description><![CDATA[AJAX应用，很强大      $(&#8220;#resText&#8221;).load(&#8220;test.html&#8221;); //直接简单一个load就代替了好长一段xmlHTTPReq  $(function(){  4 $(&#8220;#send&#8221;).click(function(){ 5 $.get(&#8220;get3.php&#8221;, { 6 username : $(&#8220;#username&#8221;).val() , 7 content : $(&#8220;#content&#8221;).val() 8 }, function (data, textStatus){ 9 var username = data.username; 10 var content = data.content; 11 var txtHtml = &#8220;&#60;div class=&#8217;comment&#8217;&#62;&#60;h6&#62;&#8221;+username+&#8221;:&#60;/h6&#62;&#60;p class=&#8217;para&#8217;&#62;&#8221;+content+&#8221;&#60;/p&#62;&#60;/div&#62;&#8221;; 12 $(&#8220;#resText&#8221;).html(txtHtml); // 把返回的数据添加到页面上 13 },&#8221;json&#8221;); 14 }) echo &#8220;{ username : \&#8221;{$_REQUEST['username']}\&#8221; , [...]


Related posts:<ol><li><a href='http://cq-cser.cn/2010/02/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b04/' rel='bookmark' title='Permanent Link: jquery学习笔记4'>jquery学习笔记4</a></li>
<li><a href='http://cq-cser.cn/2010/03/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b05/' rel='bookmark' title='Permanent Link: JQUERY学习笔记5'>JQUERY学习笔记5</a></li>
<li><a href='http://cq-cser.cn/2010/02/jquery%e8%87%aa%e5%ad%a6%e7%ac%94%e8%ae%b01/' rel='bookmark' title='Permanent Link: jquery自学笔记1'>jquery自学笔记1</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>AJAX应用，很强大<br />
     $(&#8220;#resText&#8221;).load(&#8220;test.html&#8221;);<br />
//直接简单一个load就代替了好长一段xmlHTTPReq</p>
<p><span><span id="more-899"></span> </span><span>$(function(){ </span></p>
<p><span> </span><span>4</span><span> $(&#8220;#send&#8221;).click(function(){ </span></p>
<div><span>5</span><span> $.get(&#8220;get3.php&#8221;, { </span></div>
<div><span>6</span><span> username : $(&#8220;#username&#8221;).val() , </span></div>
<div><span>7</span><span> content : $(&#8220;#content&#8221;).val() </span></div>
<div><span>8</span><span> }, function (data, textStatus){ </span></div>
<div><span>9</span><span> var username = data.username; </span></div>
<div><span>10</span><span> var content = data.content; </span></div>
<div><span>11</span><span> var txtHtml = &#8220;&lt;div class=&#8217;comment&#8217;&gt;&lt;h6&gt;&#8221;+username+&#8221;:&lt;/h6&gt;&lt;p class=&#8217;para&#8217;&gt;&#8221;+content+&#8221;&lt;/p&gt;&lt;/div&gt;&#8221;; </span></div>
<div><span>12</span><span> $(&#8220;#resText&#8221;).html(txtHtml); // 把返回的数据添加到页面上 </span></div>
<div><span>13</span><span> },&#8221;json&#8221;); </span></div>
<div><span>14</span><span> }) </span></div>
<div><span>echo &#8220;{ username : \&#8221;{$_REQUEST['username']}\&#8221; , content : \&#8221;{$_REQUEST['content']}\&#8221;}&#8221;</span></div>
<div><span>对json类数据处理</span></div>
<div>
<div><span>$(&#8220;#resText&#8221;).load(&#8220;test.html .para&#8221;,function (responseText, textStatus, XMLHttpRequest){ </span></div>
<div><span>5</span><span> alert( $(this).html() ); //在这里this指向的是当前的DOM对象，即 $(&#8220;#iptText&#8221;)[0] </span></div>
<div><span>6</span><span> alert(responseText); //请求返回的内容 </span></div>
<div><span>7</span><span> alert(textStatus); //请求状态：success，error </span></div>
<div><span>8</span><span> alert(XMLHttpRequest); //XMLHttpRequest对象 </span></div>
<div><span>9</span><span> }); </span></div>
<div>还可以带参数，load函数很强大，不过想想也是都封装到JQ里面了，小项目不如自己写</div>
</div>
<div><span>$.post(&#8220;post1.php&#8221;, { </span></div>
<div><span>5</span><span> username : $(&#8220;#username&#8221;).val() , </span></div>
<div><span>6</span><span> content : $(&#8220;#content&#8221;).val() </span></div>
<div><span>7</span><span> }, function (data, textStatus){ </span></div>
<div><span>8</span><span> $(&#8220;#resText&#8221;).html(data); // 把返回的数据添加到页面上 </span></div>
<div><span>9</span><span> } </span></div>
<div><span>//post类型的处理</span></div>
<div>
<p> </p></div>
<div><span>$.post(&#8220;post2.php&#8221;, { </span></div>
<div><span>6</span><span> username : $(&#8220;#username&#8221;).val() , </span></div>
<div><span>7</span><span> content : $(&#8220;#content&#8221;).val() </span></div>
<div><span>8</span><span> }, function (data, textStatus){ </span></div>
<div><span>9</span><span> var username = $(data).find(&#8220;comment&#8221;).attr(&#8220;username&#8221;); </span></div>
<div><span>10</span><span> var content = $(data).find(&#8220;comment content&#8221;).text(); </span></div>
<div><span>11</span><span> var txtHtml = &#8220;&lt;div class=&#8217;comment&#8217;&gt;&lt;h6&gt;&#8221;+username+&#8221;:&lt;/h6&gt;&lt;p class=&#8217;para&#8217;&gt;&#8221;+content+&#8221;&lt;/p&gt;&lt;/div&gt;&#8221;; </span></div>
<div><span>12</span><span> $(&#8220;#resText&#8221;).html(txtHtml); // 把返回的数据添加到页面上 </span></div>
<div><span>13</span><span> },&#8221;xml&#8221;); </span></div>
<div><span>//同样的，对XML数据的处理，基本格式差不多</span></div>
<div><span><span> $.getScript(&#8216;test.js&#8217;); 直接把上面写入.JS文件，访问。js文件内容如“var xxx=&#8230;&#8230;”格式</span></span></div>
<div><span><span>在看下一个例子：</span></span></div>
<div><span></span></p>
<div><span><span> </span></span></div>
<div><span><span> </span></span></div>
<p> </p></div>
<div><span>$.getScript(&#8216;http://dev.jquery.com/view/trunk/plugins/color/jquery.color.js&#8217;,function(){ </span></div>
<div><span>5</span><span> $(&#8220;&lt;p&gt;加载JavaScript完毕&lt;/p&gt;&#8221;).appendTo(&#8220;body&#8221;); </span></div>
<div><span>6</span><span> $(&#8220;#go&#8221;).click(function(){ </span></div>
<div><span>7</span><span> $(&#8220;.block&#8221;).animate( { backgroundColor: &#8216;pink&#8217; }, 1000) </span></div>
<div><span>8</span><span> .animate( { backgroundColor: &#8216;blue&#8217; }, 1000); </span></div>
<div><span>9</span><span> }); </span></div>
<div><span>10</span><span> }); </span></div>
<div><span>按顺序一个个完成。AWESOME，结尾添加动画，顺便复习下，animate+CSS属性+时间（还记得么）</span></div>
<div><span>下面是直接对.JSON格式文件操作</span></div>
<div>
<p> </p></div>
<div><span>$.getJSON(&#8216;test.json&#8217;, function(data) { </span></div>
<div><span>6</span><span> $(&#8216;#resText&#8217;).empty(); </span></div>
<div><span>7</span><span> var html = &#8221;; </span></div>
<div><span>8</span><span> $.each( data , function(commentIndex, comment) { </span></div>
<div><span>9</span><span> html += &#8216;&lt;div&gt;&lt;h6&gt;&#8217; + comment['username'] + &#8216;:&lt;/h6&gt;&lt;p&gt;&#8217; + comment['content'] + &#8216;&lt;/p&gt;&lt;/div&gt;&#8217;; </span></div>
<div><span>10</span><span> }) </span></div>
<div><span>11</span><span> $(&#8216;#resText&#8217;).html(html); </span></div>
<div><span>下面是.json文件内容</span></div>
<div><span>[<br />
  {<br />
    "username": "张三",<br />
    "content": "沙发."<br />
  },<br />
  {<br />
    "username": "李四",<br />
    "content": "板凳."<br />
  },<br />
  {<br />
    "username": "王五",<br />
    "content": "地板."<br />
  }<br />
]</span></div>
<div><span>很典型了</span></div>
<div><span>再来是.ajax</span></div>
<div>
<p> </p></div>
<div><span>$.ajax({ </span></div>
<div><span>6</span><span> type: &#8220;GET&#8221;, </span></div>
<div><span>7</span><span> url: &#8220;test.js&#8221;, </span></div>
<div><span>8</span><span> dataType: &#8220;script&#8221; </span></div>
<div><span>9</span><span> }); //效果还是那样的</span></div>
<div><span> </span></div>
<div>
<p> </p></div>
<div><span>$.ajax({ </span></div>
<div><span>6</span><span> type: &#8220;GET&#8221;, </span></div>
<div><span>7</span><span> url: &#8220;test.json&#8221;, </span></div>
<div><span>8</span><span> dataType: &#8220;json&#8221;, </span></div>
<div><span>9</span><span> success : function(data){ </span></div>
<div><span>10</span><span> $(&#8216;#resText&#8217;).empty(); </span></div>
<div><span>11</span><span> var html = &#8221;; </span></div>
<div><span>12</span><span> $.each( data , function(commentIndex, comment) { </span></div>
<div><span>13</span><span> html += &#8216;&lt;div&gt;&lt;h6&gt;&#8217; + comment['username'] + &#8216;:&lt;/h6&gt;&lt;p&gt;&#8217; + comment['content'] + &#8216;&lt;/p&gt;&lt;/div&gt;&#8217;; </span></div>
<div><span>14</span><span> }) </span></div>
<div><span>15</span><span> $(&#8216;#resText&#8217;).html(html); </span></div>
<div><span>16</span><span> } </span></div>
<div><span>17</span><span> }); //进行一些小操作</span></div>
<div><span>最后来个调用flickr的API</span></div>
<div>
<div><span> </span></div>
<p> </p></div>
<div><span>$.ajax({ </span></div>
<div><span>7</span><span> type: &#8220;GET&#8221;, </span></div>
<div><span>8</span><span> url: &#8220;http://api.flickr.com/services/feeds/photos_public.gne?tags=car&amp;tagmode=any&amp;format=json&amp;jsoncallback=?&#8221;, </span></div>
<div><span>9</span><span> dataType: &#8220;jsonp&#8221;, </span></div>
<div><span>10</span><span> success : function(data){ </span></div>
<div><span>11</span><span> $.each(data.items, function( i,item ){ </span></div>
<div><span>12</span><span> $(&#8220;&lt;img class=&#8217;para&#8217;/&gt; &#8220;).attr(&#8220;src&#8221;, item.media.m ).appendTo(&#8220;#resText&#8221;); </span></div>
<div><span>13</span><span> if ( i == 3 ) { </span></div>
<div><span>14</span><span> return false; </span></div>
<div><span>15</span><span> } </span></div>
<div><span>16</span><span> }); </span></div>
<div><span>17</span><span> } </span></div>
<div></div>


<p>Related posts:<ol><li><a href='http://cq-cser.cn/2010/02/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b04/' rel='bookmark' title='Permanent Link: jquery学习笔记4'>jquery学习笔记4</a></li>
<li><a href='http://cq-cser.cn/2010/03/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b05/' rel='bookmark' title='Permanent Link: JQUERY学习笔记5'>JQUERY学习笔记5</a></li>
<li><a href='http://cq-cser.cn/2010/02/jquery%e8%87%aa%e5%ad%a6%e7%ac%94%e8%ae%b01/' rel='bookmark' title='Permanent Link: jquery自学笔记1'>jquery自学笔记1</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://cq-cser.cn/2010/02/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b03/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jquery自学笔记2</title>
		<link>http://cq-cser.cn/2010/02/jquery%e8%87%aa%e5%ad%a6%e7%ac%94%e8%ae%b02/</link>
		<comments>http://cq-cser.cn/2010/02/jquery%e8%87%aa%e5%ad%a6%e7%ac%94%e8%ae%b02/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 07:46:19 +0000</pubDate>
		<dc:creator>cq</dc:creator>
				<category><![CDATA[JS]]></category>
		<category><![CDATA[WEB]]></category>
		<category><![CDATA[JQUERY]]></category>

		<guid isPermaLink="false">http://cq-cser.cn/?p=884</guid>
		<description><![CDATA[&#60;script type=&#8221;text/javascript&#8221;&#62; $(function(){  $(&#8216;tr.parent&#8217;).click(function(){   // 获取所谓的父行    $(this)     .toggleClass(&#8220;selected&#8221;)   // 添加/删除高亮     .siblings(&#8216;.child_&#8217;+this.id).toggle();  // 隐藏/显示所谓的子行  }); }) &#60;/script&#62; &#60;/head&#62; &#60;body&#62;  &#60;table&#62;   &#60;thead&#62;    &#60;tr&#62;&#60;th&#62;姓名&#60;/th&#62;&#60;th&#62;性别&#60;/th&#62;&#60;th&#62;暂住地&#60;/th&#62;&#60;/tr&#62;   &#60;/thead&#62;   &#60;tbody&#62;    &#60;tr id=&#8221;row_01&#8243;&#62;&#60;td colspan=&#8221;3&#8243;&#62;前台设计组&#60;/td&#62;&#60;/tr&#62;    &#60;tr&#62;&#60;td&#62;张山&#60;/td&#62;&#60;td&#62;男&#60;/td&#62;&#60;td&#62;浙江宁波&#60;/td&#62;&#60;/tr&#62;    &#60;tr&#62;&#60;td&#62;李四&#60;/td&#62;&#60;td&#62;女&#60;/td&#62;&#60;td&#62;浙江杭州&#60;/td&#62;&#60;/tr&#62;    &#60;tr id=&#8221;row_02&#8243;&#62;&#60;td colspan=&#8221;3&#8243;&#62;前台开发组&#60;/td&#62;&#60;/tr&#62;    &#60;tr&#62;&#60;td&#62;王五&#60;/td&#62;&#60;td&#62;男&#60;/td&#62;&#60;td&#62;湖南长沙&#60;/td&#62;&#60;/tr&#62;    &#60;tr&#62;&#60;td&#62;找六&#60;/td&#62;&#60;td&#62;男&#60;/td&#62;&#60;td&#62;浙江温州&#60;/td&#62;&#60;/tr&#62;    &#60;tr id=&#8221;row_03&#8243;&#62;&#60;td colspan=&#8221;3&#8243;&#62;后台开发组&#60;/td&#62;&#60;/tr&#62;    &#60;tr&#62;&#60;td&#62;Rain&#60;/td&#62;&#60;td&#62;男&#60;/td&#62;&#60;td&#62;浙江杭州&#60;/td&#62;&#60;/tr&#62;    &#60;tr&#62;&#60;td&#62;MAXMAN&#60;/td&#62;&#60;td&#62;女&#60;/td&#62;&#60;td&#62;浙江杭州&#60;/td&#62;&#60;/tr&#62;   &#60;/tbody&#62;  &#60;/table&#62; 下个例子：表格展开伸缩 $(function(){ 3 $(&#8216;tr.parent&#8217;).click(function(){ // 获取所谓的父行 4 $(this) 5 .toggleClass(&#8220;selected&#8221;) // 添加/删除高亮 6 .siblings(&#8216;.child_&#8217;+this.id).toggle(); // [...]


Related posts:<ol><li><a href='http://cq-cser.cn/2010/02/jquery%e8%87%aa%e5%ad%a6%e7%ac%94%e8%ae%b01/' rel='bookmark' title='Permanent Link: jquery自学笔记1'>jquery自学笔记1</a></li>
<li><a href='http://cq-cser.cn/2010/02/jquery%e6%96%b9%e6%b3%95%e5%a4%a7%e5%85%a8/' rel='bookmark' title='Permanent Link: jQuery方法大全'>jQuery方法大全</a></li>
<li><a href='http://cq-cser.cn/2010/04/26jquery-skills/' rel='bookmark' title='Permanent Link: 26JQUERY-SKILLS'>26JQUERY-SKILLS</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
$(function(){<br />
 $(&#8216;tr.parent&#8217;).click(function(){   // 获取所谓的父行<br />
   $(this)<br />
    .toggleClass(&#8220;selected&#8221;)   // 添加/删除高亮<br />
    .siblings(&#8216;.child_&#8217;+this.id).toggle();  // 隐藏/显示所谓的子行<span id="more-884"></span><br />
 });<br />
})<br />
&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
 &lt;table&gt;<br />
  &lt;thead&gt;<br />
   &lt;tr&gt;&lt;th&gt;姓名&lt;/th&gt;&lt;th&gt;性别&lt;/th&gt;&lt;th&gt;暂住地&lt;/th&gt;&lt;/tr&gt;<br />
  &lt;/thead&gt;<br />
  &lt;tbody&gt;<br />
   &lt;tr id=&#8221;row_01&#8243;&gt;&lt;td colspan=&#8221;3&#8243;&gt;前台设计组&lt;/td&gt;&lt;/tr&gt;<br />
   &lt;tr&gt;&lt;td&gt;张山&lt;/td&gt;&lt;td&gt;男&lt;/td&gt;&lt;td&gt;浙江宁波&lt;/td&gt;&lt;/tr&gt;<br />
   &lt;tr&gt;&lt;td&gt;李四&lt;/td&gt;&lt;td&gt;女&lt;/td&gt;&lt;td&gt;浙江杭州&lt;/td&gt;&lt;/tr&gt;</p>
<p>   &lt;tr id=&#8221;row_02&#8243;&gt;&lt;td colspan=&#8221;3&#8243;&gt;前台开发组&lt;/td&gt;&lt;/tr&gt;<br />
   &lt;tr&gt;&lt;td&gt;王五&lt;/td&gt;&lt;td&gt;男&lt;/td&gt;&lt;td&gt;湖南长沙&lt;/td&gt;&lt;/tr&gt;<br />
   &lt;tr&gt;&lt;td&gt;找六&lt;/td&gt;&lt;td&gt;男&lt;/td&gt;&lt;td&gt;浙江温州&lt;/td&gt;&lt;/tr&gt;</p>
<p>   &lt;tr id=&#8221;row_03&#8243;&gt;&lt;td colspan=&#8221;3&#8243;&gt;后台开发组&lt;/td&gt;&lt;/tr&gt;<br />
   &lt;tr&gt;&lt;td&gt;Rain&lt;/td&gt;&lt;td&gt;男&lt;/td&gt;&lt;td&gt;浙江杭州&lt;/td&gt;&lt;/tr&gt;<br />
   &lt;tr&gt;&lt;td&gt;MAXMAN&lt;/td&gt;&lt;td&gt;女&lt;/td&gt;&lt;td&gt;浙江杭州&lt;/td&gt;&lt;/tr&gt;<br />
  &lt;/tbody&gt;<br />
 &lt;/table&gt;</p>
<p>下个例子：表格展开伸缩</p>
<p><span>$(function(){ </span></p>
<div><span>3</span><span> $(&#8216;tr.parent&#8217;).click(function(){ // 获取所谓的父行 </span></div>
<div><span>4</span><span> $(this) </span></div>
<div><span>5</span><span> .toggleClass(&#8220;selected&#8221;) // 添加/删除高亮 </span></div>
<div><span>6</span><span> .siblings(&#8216;.child_&#8217;+this.id).toggle(); // 隐藏/显示所谓的子行 </span></div>
<div><span>7</span><span> }).click(); </span></div>
<div><span>8</span><span>}) </span></div>
<div><span>内容过滤</span></div>
<div><span></p>
<div><span>.hide() </span></div>
<div><span> .filter(&#8220;:contains(李)&#8221;) </span></div>
<div><span><span>.show();</span></span></div>
<div><span><span>其实想想JQ也蛮简单的，多组合才能有新效果</span></span></div>
<div><span><span></p>
<div><span>.hide() </span></div>
<div><span> .filter(&#8220;:contains(&#8216;&#8221;+( $(this).val() )+&#8221;&#8216;)&#8221;) </span></div>
<div><span> .show(); //this是一个input，同步过滤很强大</span></div>
<div><span></p>
<div><span>$(function(){ </span></div>
<div><span>3</span><span> $(&#8220;#filterName&#8221;).keyup(function(){ </span></div>
<div><span>4</span><span> $(&#8220;table tbody tr&#8221;) </span></div>
<div><span>5</span><span> .hide() </span></div>
<div><span>6</span><span> .filter(&#8220;:contains(&#8216;&#8221;+( $(this).val() )+&#8221;&#8216;)&#8221;) </span></div>
<div><span>7</span><span> .show(); </span></div>
<div><span>8</span><span> }).keyup(); </span></div>
<div><span>9</span><span> }) </span></div>
<div><span>这次用的是contains了，包含的留下。实际在firefox里貌似有问题，感觉没实现作者想要的。keyup才执行</span></div>
<div><span>￥￥￥控制字体大小：</span></div>
<div><span></p>
<div><span>$(&#8220;span&#8221;).click(function(){ </span></div>
<div><span>4</span><span> var thisEle = $(&#8220;#para&#8221;).css(&#8220;font-size&#8221;); </span></div>
<div><span>5</span><span> var textFontSize = parseFloat(thisEle , 10); </span></div>
<div><span>6</span><span> var unit = thisEle.slice(-2); //获取单位 </span></div>
<div><span>7</span><span> var cName = $(this).attr(&#8220;class&#8221;); </span></div>
<div><span>8</span><span> if(cName == &#8220;bigger&#8221;){ </span></div>
<div><span>9</span><span> textFontSize += 2; </span></div>
<div><span>10</span><span> }else if(cName == &#8220;smaller&#8221;){ </span></div>
<div><span>11</span><span> textFontSize -= 2; </span></div>
<div><span>12</span><span> } </span></div>
<div><span>13</span><span> $(&#8220;#para&#8221;).css(&#8220;font-size&#8221;, textFontSize + unit ); </span></div>
<div><span>14</span><span> }); </span></div>
<div>选项卡实例：</p>
<div><span>$(function(){ </span></div>
<div><span>4</span><span> var $div_li =$(&#8220;div.tab_menu ul li&#8221;); </span></div>
<div><span>5</span><span> $div_li.click(function(){ </span></div>
<div><span>6</span><span> $(this).addClass(&#8220;selected&#8221;) //当前&lt;li&gt;元素高亮 </span></div>
<div><span>7</span><span> .siblings().removeClass(&#8220;selected&#8221;); //去掉其它同辈&lt;li&gt;元素的高亮 </span></div>
<div><span>8</span><span> var index = $div_li.index(this); // 获取当前点击的&lt;li&gt;元素 在 全部li元素中的索引。 </span></div>
<div><span>9</span><span> $(&#8220;div.tab_box &gt; div&#8221;) //选取子节点。不选取子节点的话，会引起错误。如果里面还有div </span></div>
<div><span>10</span><span> .eq(index).show() //显示 &lt;li&gt;元素对应的&lt;div&gt;元素 </span></div>
<div><span>11</span><span> .siblings().hide(); //隐藏其它几个同辈的&lt;div&gt;元素 </span></div>
<div><span>12</span><span> }) </span></div>
<div><span>13</span><span> }) </span></div>
<div><span> </span>字体颜色改变：</div>
<div>
<div><span>$(function(){ </span></div>
<div><span>4</span><span> var $li =$(&#8220;#skin li&#8221;); </span></div>
<div><span>5</span><span> $li.click(function(){ </span></div>
<div><span>6</span><span> $(&#8220;#&#8221;+this.id).addClass(&#8220;selected&#8221;) //当前&lt;li&gt;元素选中 </span></div>
<div><span>7</span><span> .siblings().removeClass(&#8220;selected&#8221;); //去掉其它同辈&lt;li&gt;元素的选中 </span></div>
<div><span>8</span><span> $(&#8220;#cssfile&#8221;).attr(&#8220;href&#8221;,&#8221;css/&#8221;+this.id+&#8221;.css&#8221;); //设置不同皮肤 </span></div>
<div><span>9</span><span> }) </span></div>
<div><span>10</span><span> }) </span></div>
<p> $(&#8220;#&#8221;+this.id).这种写法，还有.siblings()，还记得么，再看下面这种</p></div>
<div>
<div><span>$(function(){ </span></div>
<div><span>4</span><span> var $li =$(&#8220;#skin li&#8221;); </span></div>
<div><span>5</span><span> $li.click(function(){ </span></div>
<div><span>6</span><span> switchSkin( this.id ); </span></div>
<div><span>7</span><span> }); </span></div>
<div><span>8</span><span> var cookie_skin = $.cookie( &#8220;MyCssSkin&#8221;); </span></div>
<div><span>9</span><span> if (cookie_skin) { </span></div>
<div><span>10</span><span> switchSkin( cookie_skin ); </span></div>
<div><span>11</span><span> } </span></div>
<div><span>12</span><span> }); </span></div>
<div><span>13</span><span> function switchSkin(skinName){ </span></div>
<div><span>14</span><span> $(&#8220;#&#8221;+skinName).addClass(&#8220;selected&#8221;) //当前&lt;li&gt;元素选中 </span></div>
<div><span>15</span><span> .siblings().removeClass(&#8220;selected&#8221;); //去掉其它同辈&lt;li&gt;元素的选中 </span></div>
<div><span>16</span><span> $(&#8220;#cssfile&#8221;).attr(&#8220;href&#8221;,&#8221;css/&#8221;+ skinName +&#8221;.css&#8221;); //设置不同皮肤 </span></div>
<div><span>17</span><span> $.cookie( &#8220;MyCssSkin&#8221; , skinName , { path: &#8216;/&#8217;, expires: 10 }); </span></div>
<div><span>18</span><span> } </span></div>
<div><span>有点编程的感觉了，.COOKIE原来jq还能干这事，document.cookie？不错</span></div>
<div><span> </span></div>
<div></div>
</div>
<p> </p></div>
<div> </div>
<p></span></div>
<p></span></div>
<p></span></span></div>
<p></span></div>


<p>Related posts:<ol><li><a href='http://cq-cser.cn/2010/02/jquery%e8%87%aa%e5%ad%a6%e7%ac%94%e8%ae%b01/' rel='bookmark' title='Permanent Link: jquery自学笔记1'>jquery自学笔记1</a></li>
<li><a href='http://cq-cser.cn/2010/02/jquery%e6%96%b9%e6%b3%95%e5%a4%a7%e5%85%a8/' rel='bookmark' title='Permanent Link: jQuery方法大全'>jQuery方法大全</a></li>
<li><a href='http://cq-cser.cn/2010/04/26jquery-skills/' rel='bookmark' title='Permanent Link: 26JQUERY-SKILLS'>26JQUERY-SKILLS</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://cq-cser.cn/2010/02/jquery%e8%87%aa%e5%ad%a6%e7%ac%94%e8%ae%b02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jquery自学笔记1</title>
		<link>http://cq-cser.cn/2010/02/jquery%e8%87%aa%e5%ad%a6%e7%ac%94%e8%ae%b01/</link>
		<comments>http://cq-cser.cn/2010/02/jquery%e8%87%aa%e5%ad%a6%e7%ac%94%e8%ae%b01/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 07:18:24 +0000</pubDate>
		<dc:creator>cq</dc:creator>
				<category><![CDATA[JS]]></category>
		<category><![CDATA[JQUERY]]></category>
		<category><![CDATA[实例]]></category>

		<guid isPermaLink="false">http://cq-cser.cn/?p=881</guid>
		<description><![CDATA[注释是我加的，可能有误 $(function(){ 3 var $comment = $(&#8216;#comment&#8217;); //获取评论框 4 $(&#8216;.bigger&#8217;).click(function(){ //放大按钮绑定单击事件 5 if( $comment.height() &#60; 500 ){ 6 $comment.height( $comment.height() + 50 ); //重新设置高度，在原有的基础上加50 7 } 8 }) 9 $(&#8216;.smaller&#8217;).click(function(){//缩小按钮绑定单击事件 10 if( $comment.height() &#62; 50 ){ 11 $comment.height( $comment.height() &#8211; 50 ); //重新设置高度，在原有的基础上减50 12 } 13 }); 14 }); //直接用的.height()，没用.val   $(&#8216;.up&#8217;).click(function(){ //向上按钮绑定单击事件 5 if(!$comment.is(&#8220;:animated&#8221;)){//判断是否处于动画 [...]


Related posts:<ol><li><a href='http://cq-cser.cn/2010/02/jquery%e8%87%aa%e5%ad%a6%e7%ac%94%e8%ae%b02/' rel='bookmark' title='Permanent Link: jquery自学笔记2'>jquery自学笔记2</a></li>
<li><a href='http://cq-cser.cn/2010/02/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b03/' rel='bookmark' title='Permanent Link: jquery学习笔记3'>jquery学习笔记3</a></li>
<li><a href='http://cq-cser.cn/2010/02/jquery%e6%96%b9%e6%b3%95%e5%a4%a7%e5%85%a8/' rel='bookmark' title='Permanent Link: jQuery方法大全'>jQuery方法大全</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div><span>注释是我加的，可能有误</span></div>
<div><span>$(function(){ </span></div>
<div><span>3</span><span> var $comment = $(&#8216;#comment&#8217;); //获取评论框 </span></div>
<div><span>4</span><span> $(&#8216;.bigger&#8217;).click(function(){ //放大按钮绑定单击事件 </span></div>
<div><span>5</span><span> if( $comment.height() &lt; 500 ){ </span></div>
<div><span>6</span><span> $comment.height( $comment.height() + 50 ); //重新设置高度，在原有的基础上加50 </span></div>
<div><span>7</span><span> } </span></div>
<div><span>8</span><span> }) </span></div>
<div><span>9</span><span> $(&#8216;.smaller&#8217;).click(function(){//缩小按钮绑定单击事件 </span></div>
<div><span>10</span><span> if( $comment.height() &gt; 50 ){ </span></div>
<div><span>11</span><span> $comment.height( $comment.height() &#8211; 50 ); //重新设置高度，在原有的基础上减50 </span></div>
<div><span>12</span><span> } </span></div>
<div><span>13</span><span> }); </span></div>
<div><span>14</span><span> }); </span></div>
<div><span>//直接用的.height()，没用.val</span></div>
<div><span><span id="more-881"></span></span></div>
<div><span> </span></div>
<div><span>$(&#8216;.up&#8217;).click(function(){ //向上按钮绑定单击事件 </span></div>
<div><span>5</span><span> if(!$comment.is(&#8220;:animated&#8221;)){//判断是否处于动画 </span></div>
<div><span>6</span><span> $comment.animate({ scrollTop : &#8220;-=50&#8243; } , 400); </span></div>
<div><span>7</span><span> } </span></div>
<div><span>8</span><span> }) </span></div>
<div>
<p> </p></div>
<div><span>$(function(){ </span></div>
<div><span>3</span><span> //全选 </span></div>
<div><span>4</span><span> $(&#8220;#CheckedAll&#8221;).click(function(){ </span></div>
<div><span>5</span><span> $(&#8216;[name=items]:checkbox&#8217;).attr(&#8216;checked&#8217;, true); </span></div>
<div><span>6</span><span> }); </span></div>
<div><span>7</span><span> //全不选 </span></div>
<div><span>8</span><span> $(&#8220;#CheckedNo&#8221;).click(function(){ </span></div>
<div><span>9</span><span> $(&#8216;[type=checkbox]:checkbox&#8217;).attr(&#8216;checked&#8217;, false); </span></div>
<div><span>10</span><span> }); </span></div>
<div><span>11</span><span> //反选 </span></div>
<div><span>12</span><span> $(&#8220;#CheckedRev&#8221;).click(function(){ </span></div>
<div><span>13</span><span> $(&#8216;[name=items]:checkbox&#8217;).each(function(){ </span></div>
<div><span>14</span><span> //此处用JQ写法颇显啰嗦。体现不出JQ飘逸的感觉。 </span></div>
<div><span>15</span><span> //$(this).attr(&#8220;checked&#8221;, !$(this).attr(&#8220;checked&#8221;)); </span></div>
<div><span>16</span><span> </span></div>
<div><span>17</span><span> //直接使用JS原生代码，简单实用 </span></div>
<div><span>18</span><span> this.checked=!this.checked; </span></div>
<div><span>19</span><span> }); </span></div>
<div><span>20</span><span> }); </span></div>
<div><span>21</span><span> //输出值 </span></div>
<div><span>22</span><span> $(&#8220;#send&#8221;).click(function(){ </span></div>
<div><span>23</span><span> var str=&#8221;你选中的是：\r\n&#8221;; </span></div>
<div><span>24</span><span> $(&#8216;[name=items]:checkbox:checked&#8217;).each(function(){ </span></div>
<div><span>25</span><span> str+=$(this).val()+&#8221;\r\n&#8221;; </span></div>
<div><span>26</span><span> }) </span></div>
<div><span>27</span><span> alert(str); </span></div>
<div><span>28</span><span> }); </span></div>
<div><span>29</span><span> }) </span></div>
<div>
<p> </p></div>
<div><span>$(&#8220;#CheckedAll&#8221;).click(function(){ </span></div>
<div><span>5</span><span> if(this.checked){ //如果当前点击的多选框被选中 </span></div>
<div><span>6</span><span> $(&#8216;input[type=checkbox][name=items]&#8216;).attr(&#8220;checked&#8221;, true ); </span></div>
<div><span>7</span><span> }else{ </span></div>
<div><span>8</span><span> $(&#8216;input[type=checkbox][name=items]&#8216;).attr(&#8220;checked&#8221;, false ); </span></div>
<div>
<p> </p></div>
<div><span>$(function(){ </span></div>
<div><span>3</span><span> //全选 </span></div>
<div><span>4</span><span> $(&#8220;#CheckedAll&#8221;).click(function(){ </span></div>
<div><span>5</span><span> //所有checkbox跟着全选的checkbox走。 </span></div>
<div><span>6</span><span> $(&#8216;[name=items]:checkbox&#8217;).attr(&#8220;checked&#8221;, this.checked ); </span></div>
<div><span>7</span><span> }); </span></div>
<div><span>8</span><span> $(&#8216;[name=items]:checkbox&#8217;).click(function(){ </span></div>
<div><span>9</span><span> //定义一个临时变量，避免重复使用同一个选择器选择页面中的元素，提升程序效率。 </span></div>
<div><span>10</span><span> var $tmp=$(&#8216;[name=items]:checkbox&#8217;); </span></div>
<div><span>11</span><span> //用filter方法筛选出选中的复选框。并直接给CheckedAll赋值。 </span></div>
<div><span>12</span><span> $(&#8216;#CheckedAll&#8217;).attr(&#8216;checked&#8217;,$tmp.length==$tmp.filter(&#8216;:checked&#8217;).length); </span></div>
<div><span>13</span><span> </span></div>
<div><span>14</span><span> /* </span></div>
<div><span>15</span><span> //一行做过多的事情需要写更多注释。复杂选择器还可能影响效率。因此不推荐如下写法。 </span></div>
<div><span>16</span><span> $(&#8216;#CheckedAll&#8217;).attr(&#8216;checked&#8217;,!$(&#8216;[name=items]:checkbox&#8217;).filter(&#8216;:not(:checked)&#8217;).length); </span></div>
<div><span>17</span><span> */ </span></div>
<div><span>18</span><span> }); </span></div>
<div><span>19</span><span> //输出值 </span></div>
<div><span>20</span><span> $(&#8220;#send&#8221;).click(function(){ </span></div>
<div><span>21</span><span> var str=&#8221;你选中的是：\r\n&#8221;; </span></div>
<div><span>22</span><span> $(&#8216;[name=items]:checkbox:checked&#8217;).each(function(){ </span></div>
<div><span>23</span><span> str+=$(this).val()+&#8221;\r\n&#8221;; </span></div>
<div><span>24</span><span> }) </span></div>
<div><span>25</span><span> alert(str); </span></div>
<div><span>26</span><span> }); </span></div>
<div><span>27</span><span>}); </span></div>
<div>
<p> </p></div>
<div><span>$(function(){ </span></div>
<div><span>3</span><span> //移到右边 </span></div>
<div><span>4</span><span> $(&#8216;#add&#8217;).click(function() { </span></div>
<div><span>5</span><span> //获取选中的选项，删除并追加给对方 </span></div>
<div><span>6</span><span> $(&#8216;#select1 option:selected&#8217;).appendTo(&#8216;#select2&#8242;); </span></div>
<div><span>7</span><span> }); </span></div>
<div><span>8</span><span> //移到左边 </span></div>
<div><span>9</span><span> $(&#8216;#remove&#8217;).click(function() { </span></div>
<div><span>10</span><span> $(&#8216;#select2 option:selected&#8217;).appendTo(&#8216;#select1&#8242;); </span></div>
<div><span>11</span><span> }); </span></div>
<div><span>12</span><span> //全部移到右边 </span></div>
<div><span>13</span><span> $(&#8216;#add_all&#8217;).click(function() { </span></div>
<div><span>14</span><span> //获取全部的选项,删除并追加给对方 </span></div>
<div><span>15</span><span> $(&#8216;#select1 option&#8217;).appendTo(&#8216;#select2&#8242;); </span></div>
<div><span>16</span><span> }); </span></div>
<div><span>17</span><span> //全部移到左边 </span></div>
<div><span>18</span><span> $(&#8216;#remove_all&#8217;).click(function() { </span></div>
<div><span>19</span><span> $(&#8216;#select2 option&#8217;).appendTo(&#8216;#select1&#8242;); </span></div>
<div><span>20</span><span> }); </span></div>
<div><span>21</span><span> //双击选项 </span></div>
<div><span>22</span><span> $(&#8216;#select1&#8242;).dblclick(function(){ //绑定双击事件 </span></div>
<div><span>23</span><span> //获取全部的选项,删除并追加给对方 </span></div>
<div><span>24</span><span> $(&#8220;option:selected&#8221;,this).appendTo(&#8216;#select2&#8242;); //追加给对方 </span></div>
<div><span>25</span><span> }); </span></div>
<div><span>26</span><span> //双击选项 </span></div>
<div><span>27</span><span> $(&#8216;#select2&#8242;).dblclick(function(){ </span></div>
<div><span>28</span><span> $(&#8220;option:selected&#8221;,this).appendTo(&#8216;#select1&#8242;); </span></div>
<div><span>29</span><span> }); </span></div>
<div><span>30</span><span>}); </span></div>
<div><span>注意appendTo用法，用id传递的，应该能传到input里面吧</span></div>
<div><span>表单验证：</span></p>
<div><span><span>$(&#8220;tr:contains(&#8216;王五 &#8216;)&#8221;).addClass(&#8220;selected&#8221;); //通过contains选择</span></span><span><span> </span></span></div>
<div>
<div><span>// $(&#8216;table :radio:checked&#8217;).parent().parent().addClass(&#8216;selected&#8217;);</span></p>
<div><span> //简化: </span></div>
<div><span>$(&#8216;table :radio:checked&#8217;).parents(&#8220;tr&#8221;).addClass(&#8216;selected&#8217;); </span></div>
<div><span> //再简化: </span><span> //$(&#8216;tbody&gt;tr:has(:checked)&#8217;).addClass(&#8216;selected&#8217;); //has，精辟啊，再看下面这个</span></div>
<div><span> </span></div>
<div>
<div><span> </span></div>
</div>
<div><span>var hasSelected=$(this).hasClass(&#8216;selected&#8217;); </span></div>
<div><span> //如果选中，则移出selected类，否则就加上selected类 </span></div>
<div><span> $(this)[hasSelected?"removeClass":"addClass"](&#8216;selected&#8217;) </span></div>
<div><span>//查找内部的checkbox,设置对应的属性。 </span></div>
<div><span>.find(&#8216;:checkbox&#8217;).attr(&#8216;checked&#8217;,!hasSelected); </span></div>
<div><span>用？：语句，awesome</span></div>
<div><span> </span></div>
<p> </p></div>
<div><span>// 如果单选框默认情况下是选择的，则高色. </span></div>
<p> </p></div>
<p> </p></div>
<div><span>$(function(){ </span></div>
<div><span>4</span><span> //如果是必填的，则加红星标识. </span></div>
<div><span>5</span><span> $(&#8220;form :input.required&#8221;).each(function(){ </span></div>
<div><span>6</span><span> var $required = $(&#8220;&lt;strong class=&#8217;high&#8217;&gt; *&lt;/strong&gt;&#8221;); //创建元素 </span></div>
<div><span>7</span><span> $(this).parent().append($required); //然后将它追加到文档中 </span></div>
<div><span>8</span><span> }); </span></div>
<div><span>9</span><span> //文本框失去焦点后 </span></div>
<div><span>10</span><span> $(&#8216;form :input&#8217;).blur(function(){ // 为表单元素添加失去焦点事件 </span></div>
<div><span>11</span><span> var $parent = $(this).parent(); </span></div>
<div><span>12</span><span> //验证用户名 </span></div>
<div><span>13</span><span> if( $(this).is(&#8216;#username&#8217;) ){ </span></div>
<div><span>14</span><span> if( this.value==&#8221;" || this.value.length &lt; 6 ){ </span></div>
<div><span>15</span><span> var errorMsg = &#8216;请输入至少6位的用户名.&#8217;; </span></div>
<div><span>16</span><span> $parent.append(&#8216;&lt;span&gt;&#8217;+errorMsg+&#8217;&lt;/span&gt;&#8217;); </span></div>
<div><span>17</span><span> }else{ </span></div>
<div><span>18</span><span> var okMsg = &#8216;输入正确.&#8217;; </span></div>
<div><span>19</span><span> $parent.append(&#8216;&lt;span&gt;&#8217;+okMsg+&#8217;&lt;/span&gt;&#8217;); </span></div>
<div><span>20</span><span> } </span></div>
<div><span>21</span><span> } </span></div>
<div><span>22</span><span> //验证邮件 </span></div>
<div><span>23</span><span> if( $(this).is(&#8216;#email&#8217;) ){ </span></div>
<div><span>24</span><span> if( this.value==&#8221;" || ( this.value!=&#8221;" &amp;&amp; !/.+@.+\.[a-zA-Z]{2,4}$/.test(this.value) ) ){ </span></div>
<div><span>25</span><span> var errorMsg = &#8216;请输入正确的E-Mail地址.&#8217;; </span></div>
<div><span>26</span><span> $parent.append(&#8216;&lt;span&gt;&#8217;+errorMsg+&#8217;&lt;/span&gt;&#8217;); </span></div>
<div><span>27</span><span> }else{ </span></div>
<div><span>28</span><span> var okMsg = &#8216;输入正确.&#8217;; </span></div>
<div><span>29</span><span> $parent.append(&#8216;&lt;span&gt;&#8217;+okMsg+&#8217;&lt;/span&gt;&#8217;); </span></div>
<div><span>30</span><span> } </span></div>
<div><span>31</span><span> } </span></div>
<div><span>32</span><span> }) </span></div>
<div><span>33</span><span>}) </span></div>
<div>
<p> </p></div>
<div><span>$(function(){ </span></div>
<div><span>3</span><span> $(&#8220;tr:odd&#8221;).addClass(&#8220;odd&#8221;); /* 奇数行添加样式*/ </span></div>
<div><span>4</span><span> $(&#8220;tr:even&#8221;).addClass(&#8220;even&#8221;); /* 偶数行添加样式*/ </span></div>
<div><span>5</span><span> }) </span></div>
<div><span>odd奇数，even偶数，gt大于lt小于eq等于，还有#~^+&gt;这些符号的用法你还记得么</span></div>


<p>Related posts:<ol><li><a href='http://cq-cser.cn/2010/02/jquery%e8%87%aa%e5%ad%a6%e7%ac%94%e8%ae%b02/' rel='bookmark' title='Permanent Link: jquery自学笔记2'>jquery自学笔记2</a></li>
<li><a href='http://cq-cser.cn/2010/02/jquery%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b03/' rel='bookmark' title='Permanent Link: jquery学习笔记3'>jquery学习笔记3</a></li>
<li><a href='http://cq-cser.cn/2010/02/jquery%e6%96%b9%e6%b3%95%e5%a4%a7%e5%85%a8/' rel='bookmark' title='Permanent Link: jQuery方法大全'>jQuery方法大全</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://cq-cser.cn/2010/02/jquery%e8%87%aa%e5%ad%a6%e7%ac%94%e8%ae%b01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

