Jquery常用技巧和方法收集

[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] 
*/   

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *