[javascript]
Tip15:Jquery觸發回車事件
$(function () {
$('#target').bind('keyup', function (event) {
if (event.keyCode == 13) {
alert("Hello~");
}
});
}); www.aiwalls.com
—————————————————————–
Tip14:獲得select 的值
jquery可以像獲取textbox值一樣獲取select的值:$('select').val();
—————————————————————–
Tip13:復制文本
使用 window.clipboardData.setData('text', text); 可以將text文本放到系統剪貼板中,實現文本的復制功能。但是,這個方法隻被IE所支持。Google Chrome 和Foxfire都不支持。所以,在使用時應先判斷瀏覽器是否支持:if (window.clipboardData) { window.clipboardData.setData('text', text); }
—————————————————————–
Tip12:選擇文本
對於input或者textarea的文本選擇,jquery提供瞭一個簡單的函數完成:select(),在調用它的時候,需要確保文本框可見,並且已經獲得焦點。 $("#txtSample").focus().select(); //現貨的焦點,然後選擇文本
—————————————————————–
Tip11:鼠標事件
mouseover 和 mouseout、 mouseenter 和 mouseleave;這兩組事件都是鼠標移入和移出元素時觸發的,他們的最大區別是: mouseover 和 mouseout是冒泡的,如果鼠標移動到它們的子元素,同樣會觸發該事件,而 mouseenter 和 mouseleave是不會冒泡的。 這個區別很重要!
—————————————————————–
Tip10:頁面跳轉
使用js直接對window.location.href 賦一個URL字符串值即可實現跳轉。
window.location.href = 'a.html';
—————————————————————–
Tip9:jQuery對象的擴展
$.extend(target,prop1,propN):用一個或多個其他對象來擴展一個對象,返回這個被擴展的對象。這是jquery實現的繼承方式。例如:
$.extend(settings, options);
合並settings和options,並將合並結果返回settings中,相當於options繼承setting並將繼承結果保存在 setting中。
var settings = $.extend({}, defaults, options);
合並defaults和options,並將合並結果返回到setting中而不覆蓋default內容。可以有多個參數(合並多項並返回)
—————————————————————–
Tip8:jQuery刪除數組中的項
如Tip7中所說,使用$.grep()方法刪除數組中的元素。
var array = ['a', 'b', 'c'];
$.grap(array, function(value, index){return value=='b';}, true);
上面的代碼將刪除數組array中的元素'b'。
—————————————————————–
Tip7:jQuery數組的處理
$.each(obj, fn);
對obj進行遍歷,obj為要遍歷的數組或對象;fn為處理函數,可選的參數為索引和內容,例如var fn = function(index, content){};如果需要結束遍歷,請返回false,其它的返回值將會被忽略。
該方法可以用來處理JSON數據對象。
$.inArray(obj, array);
判斷數組array中是否包含obj對象,如果存在,返回對應的下標,如果不存在,返回-1;
$.map(array, fn);
將一個數組中的元素轉換到另一個數組中。array為需要轉換的數組,fn為處理函數;這個方法的返回值是一個經過處理後的新數組。
$.merge(array1, array2);
合並兩個數組;將數組array2中的內容復制到array1中,並將結果返回。merge方法不會去除重復,需要使用 $.unique()去除重復。
$.unique(array);
去除數組array中的重復項。
$.grep(array, fn, [invert]);
過濾數組中的元素;該方法對數組array中的每一個對象都調用fn方法;
invert 可選參數;如果 "invert" 為 false 或未設置,則函數返回數組中由過濾函數返回 true 的元素,當"invert" 為 true,則返回過濾函數中返回 false 的元素集。
該方法常用來刪除數組中的元素
—————————————————————–
Tip6:去除string開頭和結尾的空格
js中沒有提供trim函數供我們去掉字符串兩段的空字符,jQuery中擴展瞭這一功能:
$.trim(str):刪除字符串兩端的空白字符。
如:$.trim(" hello, how are you? "); //返回"hello,how are you? "
—————————————————————–
Tip5:添加事件和移除事件
為一個jQuery對象添加事件是很方便的事情:
$('#btn').click(fn);
$('#btn').bind('click', fn);
jQuery提供瞭為一個對象的事件提供多個處理函數的機制,我們添加瞭一個click事件處理方法後,還可以繼續添加,而不會覆蓋先前的處理方法。
當調用unbind方法時移除綁定的事件訂閱:
$('#btn').unbind(); //將會移除所有的事件訂閱
$('#btn').unbind('click') //將會移除click事件的訂閱
—————————————————————–
Tip4:擴展需要的功能
jQuery提供瞭extend方法讓我們來擴展自己需要的功能。例如:
$.extend({
sum: function(num1, num2){return num1+num2; },
}); //為jquery擴展瞭sum方法
使用擴展的方法(通過“$.方法名”調用):
alert($.sum(10, 20));
—————————————————————–
Tip3:獲取jQuery對象集合中的一項
對於獲取的元素集合,獲取其中的某一項(通過索引指定)可以使用eq或get(n)方法或者索引號獲取,要註意,eq返回的是jquery對象,而 get(n)和索引返回的是dom元素對象。對於jquery對象隻能使用jquery的方法,而dom對象隻能使用dom的方法,如要獲取第三個<p>元素的內容。有如下兩種方法:
$("p").eq(2).html(); //調用jquery對象的方法
$("p").get(2).innerHTML; //調用dom的方法屬性
—————————————————————–
Tip2:jQuery對象和Dom的轉換
Dom對象可以通過$(dom)轉換為jQuery對象;例如:
$(document.getElementById('#myDiv'))
jQuery對象本身是一個索引,可以通過下標得到Dom對象;也可以使用方法get()獲取Dom對象;例如:
$("p")[0]; //獲取第一個Dom對象
$("p").get(0); //同樣獲取第一個Dom對象
—————————————————————–
Tip1:在獨立的js文件中智能感知
在js文件的開頭添加:/// <reference path="jquery-1.3.2-vsdoc2.js" />
1) 檢查IE是否是版本6
if ( (jQuery.browser.msie) && (parseInt(jQuery.browser.version) < 7) ) {
$('body').prepend('<p class="warning">You are using an old version of Internet Explorer which is not supported. Please upgrade your browser in order to view this website.</p>');
}
2) 打開一個打印的窗口
[url=#]Print this page[/url]
$('a.print').click(function(){
window.print();
return false;
});
3 禁止表單使用回車鍵
$("#form").keypress(function(e) {
if (e.which == 13) {
return false;
}
});
4 全選和反選checkbox
<p class="options">
[list]
[*][url=#]Select All[/url]
[*][url=#]Reset All[/url]
[/list]
<input type="checkbox" id="option1" /><label for="option1">Option 1</label>
<input type="checkbox" id="option2" /><label for="option2">Option 2</label>
<input type="checkbox" id="option3" /><label for="option3">Option 3</label>
<input type="checkbox" id="option4" /><label for="option4">Option 4</label>
</p>
$('.select-all').live('click', function(){
$(this).closest('.options').find('input[type=checkbox]').attr('checked', true);
return false;
});
$('.reset-all').live('click', function(){
$(this).closest('.options').find('input[type=checkbox]').attr('checked', false);
return false;
});
5 平均分各個列
有的時候,需要在表格中讓各個列等分,可以這樣
var max_height = 0;
$("p.col").each(function(){
if ($(this).height() > max_height) { max_height = $(this).height(); }
});
$("p.col").height(max_height);
6 將所有的連接用新建窗口打開
$('a[@rel$='external']').click(function(){
this.target = "_blank";
});
/*
Usage:
[url=http://www.catswhocode.com]catswhocode.com[/url]
*/