jQuery的26個使用技巧

The use of the jQuery library is growing and growing(just released jQuery 1.4), more and more people are using this useful javascript library. This means that more and more useful jQuery tips, tricks and solutions are coming available. That’s why i created a small list of 26 cool and useful jQuery tips, tricks and solutions.



1. 禁用右鍵點擊(Disable right-click)

  1. $(document).ready(function(){
  2. $(document).bind("contextmenu",function(e){
  3. return false;
  4. });
  5. });
$(document).ready(function(){
    $(document).bind("contextmenu",function(e){
        return false;
    });
});


2. 禁用搜索文本框(Disappearing search field text)

  1. $(document).ready(function() {
  2. $("input.text1").val("Enter your search text here");
  3. textFill($('input.text1'));
  4. });
  5. function textFill(input){ //input focus text function
  6. var originalvalue = input.val();
  7. input.focus( function(){
  8. if( $.trim(input.val()) == originalvalue ){ input.val(''); }
  9. });
  10. input.blur( function(){
  11. if( $.trim(input.val()) == '' ){ input.val(originalvalue); }
  12. });
  13. }
$(document).ready(function() {
$("input.text1").val("Enter your search text here");
   textFill($('input.text1'));
});

	function textFill(input){ //input focus text function
 	var originalvalue = input.val();
 	input.focus( function(){
  		if( $.trim(input.val()) == originalvalue ){ input.val(''); }
 	});
 	input.blur( function(){
  		if( $.trim(input.val()) == '' ){ input.val(originalvalue); }
 	});
}


3. 新窗口打開鏈接(Opening links in a new window)

  1. $(document).ready(function() {
  2. //Example 1: Every link will open in a new window
  3. $('a[href^="http://"]').attr("target", "_blank");
  4. //Example 2: Links with the rel="external" attribute will only open in a new window
  5. $('a[@rel$='external']').click(function(){
  6. this.target = "_blank";
  7. });
  8. });
  9. // how to use
  10. <a href="http://www.opensourcehunter.com" rel="external">open link</a>
$(document).ready(function() {
   //Example 1: Every link will open in a new window
   $('a[href^="http://"]').attr("target", "_blank");

   //Example 2: Links with the rel="external" attribute will only open in a new window
   $('a[@rel$='external']').click(function(){
      this.target = "_blank";
   });
});
// how to use
<a href="http://www.opensourcehunter.com" rel="external">open link</a>


4. 檢測瀏覽器(Detect browser)

  1. $(document).ready(function() {
  2. // Target Firefox 2 and above
  3. if ($.browser.mozilla && $.browser.version >= "1.8" ){
  4. // do something
  5. }
  6. // Target Safari
  7. if( $.browser.safari ){
  8. // do something
  9. }
  10. // Target Chrome
  11. if( $.browser.chrome){
  12. // do something
  13. }
  14. // Target Camino
  15. if( $.browser.camino){
  16. // do something
  17. }
  18. // Target Opera
  19. if( $.browser.opera){
  20. // do something
  21. }
  22. // Target IE6 and below
  23. if ($.browser.msie && $.browser.version <= 6 ){
  24. // do something
  25. }
  26. // Target anything above IE6
  27. if ($.browser.msie && $.browser.version > 6){
  28. // do something
  29. }
  30. });
$(document).ready(function() {
// Target Firefox 2 and above
if ($.browser.mozilla && $.browser.version >= "1.8" ){
	// do something
}

// Target Safari
if( $.browser.safari ){
	// do something
}

// Target Chrome
if( $.browser.chrome){
	// do something
}

// Target Camino
if( $.browser.camino){
	// do something
}

// Target Opera
if( $.browser.opera){
	// do something
}

// Target IE6 and below
if ($.browser.msie && $.browser.version <= 6 ){
	// do something
}

// Target anything above IE6
if ($.browser.msie && $.browser.version > 6){
	// do something
}
});


5. 預加載圖片(Preloading images)

  1. $(document).ready(function() {
  2. jQuery.preloadImages = function()
  3. {
  4. for(var i = 0; i<arguments.length; i++)="" {="" jquery("<img="">").attr("src", arguments[i]);
  5. }
  6. }
  7. // how to use
  8. $.preloadImages("image1.jpg");
  9. });
  10. </arguments.length;>
$(document).ready(function() {
jQuery.preloadImages = function()
{
  for(var i = 0; i<arguments.length; i++)="" {="" jquery("<img="">").attr("src", arguments[i]);
  }
}
// how to use
$.preloadImages("image1.jpg");
});
</arguments.length;>


6. 樣式篩選(CSS Style switcher)

  1. $(document).ready(function() {
  2. $("a.Styleswitcher").click(function() {
  3. //swicth the LINK REL attribute with the value in A REL attribute
  4. $('link[rel=stylesheet]').attr('href' , $(this).attr('rel'));
  5. });
  6. // how to use
  7. // place this in your header
  8. <link rel="stylesheet" href="default.css" type="text/css">
  9. // the links
  10. <a href="#" class="Styleswitcher" rel="default.css">Default Theme</a>
  11. <a href="#" class="Styleswitcher" rel="red.css">Red Theme</a>
  12. <a href="#" class="Styleswitcher" rel="blue.css">Blue Theme</a>
  13. });
$(document).ready(function() {
	$("a.Styleswitcher").click(function() {
		//swicth the LINK REL attribute with the value in A REL attribute
		$('link[rel=stylesheet]').attr('href' , $(this).attr('rel'));
	});
// how to use
// place this in your header
<link rel="stylesheet" href="default.css" type="text/css">
// the links
<a href="#" class="Styleswitcher" rel="default.css">Default Theme</a>
<a href="#" class="Styleswitcher" rel="red.css">Red Theme</a>
<a href="#" class="Styleswitcher" rel="blue.css">Blue Theme</a>
});


7. 列高度相同(Columns of equal height)

  1. $(document).ready(function() {
  2. function equalHeight(group) {
  3. tallest = 0;
  4. group.each(function() {
  5. thisHeight = $(this).height();
  6. if(thisHeight > tallest) {
  7. tallest = thisHeight;
  8. }
  9. });
  10. group.height(tallest);
  11. }
  12. // how to use
  13. $(document).ready(function() {
  14. equalHeight($(".left"));
  15. equalHeight($(".right"));
  16. });
  17. });
$(document).ready(function() {
function equalHeight(group) {
    tallest = 0;
    group.each(function() {
        thisHeight = $(this).height();
        if(thisHeight > tallest) {
            tallest = thisHeight;
        }
    });
    group.height(tallest);
}
// how to use
$(document).ready(function() {
    equalHeight($(".left"));
    equalHeight($(".right"));
});
});


8. 字體大小調整(Font resizing)

  1. $(document).ready(function() {
  2. // Reset the font size(back to default)
  3. var originalFontSize = $('html').css('font-size');
  4. $(".resetFont").click(function(){
  5. $('html').css('font-size', originalFontSize);
  6. });
  7. // Increase the font size(bigger font0
  8. $(".increaseFont").click(function(){
  9. var currentFontSize = $('html').css('font-size');
  10. var currentFontSizeNum = parseFloat(currentFontSize, 10);
  11. var newFontSize = currentFontSizeNum*1.2;
  12. $('html').css('font-size', newFontSize);
  13. return false;
  14. });
  15. // Decrease the font size(smaller font)
  16. $(".decreaseFont").click(function(){
  17. var currentFontSize = $('html').css('font-size');
  18. var currentFontSizeNum = parseFloat(currentFontSize, 10);
  19. var newFontSize = currentFontSizeNum*0.8;
  20. $('html').css('font-size', newFontSize);
  21. return false;
  22. });
  23. });
$(document).ready(function() {
  // Reset the font size(back to default)
  var originalFontSize = $('html').css('font-size');
    $(".resetFont").click(function(){
    $('html').css('font-size', originalFontSize);
  });
  // Increase the font size(bigger font0
  $(".increaseFont").click(function(){
    var currentFontSize = $('html').css('font-size');
    var currentFontSizeNum = parseFloat(currentFontSize, 10);
    var newFontSize = currentFontSizeNum*1.2;
    $('html').css('font-size', newFontSize);
    return false;
  });
  // Decrease the font size(smaller font)
  $(".decreaseFont").click(function(){
    var currentFontSize = $('html').css('font-size');
    var currentFontSizeNum = parseFloat(currentFontSize, 10);
    var newFontSize = currentFontSizeNum*0.8;
    $('html').css('font-size', newFontSize);
    return false;
  });
});



9. 返回頁面頂部(Smooth(animated) page scroll)

  1. $(document).ready(function() {
  2. $('a[href*=#]').click(function() {
  3. if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
  4. && location.hostname == this.hostname) {
  5. var $target = $(this.hash);
  6. $target = $target.length && $target
  7. || $('[name=' + this.hash.slice(1) +']');
  8. if ($target.length) {
  9. var targetOffset = $target.offset().top;
  10. $('html,body')
  11. .animate({scrollTop: targetOffset}, 900);
  12. return false;
  13. }
  14. }
  15. });
  16. // how to use
  17. // place this where you want to scroll to
  18. <a name="top"></a>
  19. // the link
  20. <a href="#top">go to top</a>
  21. });
$(document).ready(function() {
$('a[href*=#]').click(function() {
 if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
 && location.hostname == this.hostname) {
   var $target = $(this.hash);
   $target = $target.length && $target
   || $('[name=' + this.hash.slice(1) +']');
   if ($target.length) {
  var targetOffset = $target.offset().top;
  $('html,body')
  .animate({scrollTop: targetOffset}, 900);
    return false;
   }
  }
  });
// how to use
// place this where you want to scroll to
<a name="top"></a>
// the link
<a href="#top">go to top</a>
});



11. 獲取鼠標的xy座標(Get the mouse cursor x and y axis)

  1. $(document).ready(function() {
  2. $().mousemove(function(e){
  3. //display the x and y axis values inside the div with the id XY
  4. $('#XY').html("X Axis : " + e.pageX + " | Y Axis " + e.pageY);
  5. });
  6. // how to use
  7. <div id="XY"></div>
  8. });
$(document).ready(function() {
   $().mousemove(function(e){
     //display the x and y axis values inside the div with the id XY
    $('#XY').html("X Axis : " + e.pageX + " | Y Axis " + e.pageY);
  });
// how to use
<div id="XY"></div>

});



12. 驗證元素是否爲空(Verify if an Element is empty)

  1. $(document).ready(function() {
  2. if ($('#id').html()) {
  3. // do something
  4. }
  5. });
$(document).ready(function() {
  if ($('#id').html()) {
   // do something
   }
});

13. 替換元素(Replace a element)

  1. $(document).ready(function() {
  2. $('#id').replaceWith('
  3. <div>I have been replaced</div>
  4. ');
  5. });
$(document).ready(function() {
   $('#id').replaceWith('
<div>I have been replaced</div>

');
});

14. 延遲加載(jQuery timer callback functions)

  1. $(document).ready(function() {
  2. window.setTimeout(function() {
  3. // do something
  4. }, 1000);
  5. });
$(document).ready(function() {
   window.setTimeout(function() {
     // do something
   }, 1000);
});

15. 移除單詞(Remove a word)

  1. $(document).ready(function() {
  2. var el = $('#id');
  3. el.html(el.html().replace(/word/ig, ""));
  4. });
$(document).ready(function() {
   var el = $('#id');
   el.html(el.html().replace(/word/ig, ""));
});

16. 驗證元素是否存在(Verify that an element exists in jQuery)

  1. $(document).ready(function() {
  2. if ($('#id').length) {
  3. // do something
  4. }
  5. });
$(document).ready(function() {
   if ($('#id').length) {
  // do something
  }
});

17. 使整個DIV可點擊(Make the entire DIV clickable)

  1. $(document).ready(function() {
  2. $("div").click(function(){
  3. //get the url from href attribute and launch the url
  4. window.location=$(this).find("a").attr("href"); return false;
  5. });
  6. // how to use
  7. <div><a href="index.html">home</a></div>
  8. });
$(document).ready(function() {
	$("div").click(function(){
	  //get the url from href attribute and launch the url
	  window.location=$(this).find("a").attr("href"); return false;
	});
// how to use
<div><a href="index.html">home</a></div>

});

18. id和class切換(Switch between classes or id’s when resizing the window)

  1. $(document).ready(function() {
  2. function checkWindowSize() {
  3. if ( $(window).width() > 1200 ) {
  4. $('body').addClass('large');
  5. }
  6. else {
  7. $('body').removeClass('large');
  8. }
  9. }
  10. $(window).resize(checkWindowSize);
  11. });
$(document).ready(function() {
   function checkWindowSize() {
	if ( $(window).width() > 1200 ) {
		$('body').addClass('large');
	}
	else {
		$('body').removeClass('large');
	}
   }
$(window).resize(checkWindowSize);
});


19. 克隆對象(Clone a object)

  1. $(document).ready(function() {
  2. var cloned = $('#id').clone();
  3. // how to use
  4. <div id="id"></div>
  5. });
$(document).ready(function() {
   var cloned = $('#id').clone();
// how to use
<div id="id"></div>

});


20. 使元素居中屏幕(Center an element on the screen)

  1. $(document).ready(function() {
  2. jQuery.fn.center = function () {
  3. this.css("position","absolute");
  4. this.css("top", ( $(window).height() - this.height() ) / 2+$(window).scrollTop() + "px");
  5. this.css("left", ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + "px");
  6. return this;
  7. }
  8. $("#id").center();
  9. });
$(document).ready(function() {
  jQuery.fn.center = function () {
	  this.css("position","absolute");
	  this.css("top", ( $(window).height() - this.height() ) / 2+$(window).scrollTop() + "px");
	  this.css("left", ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + "px");
	  return this;
  }
  $("#id").center();
});


21. 自定義選擇器(Write our own selector)

  1. $(document).ready(function() {
  2. $.extend($.expr[':'], {
  3. moreThen1000px: function(a) {
  4. return $(a).width() > 1000;
  5. }
  6. });
  7. $('.box:moreThen1000px').click(function() {
  8. // creating a simple js alert box
  9. alert('The element that you have clicked is over 1000 pixels wide');
  10. });
  11. });
$(document).ready(function() {
   $.extend($.expr[':'], {
       moreThen1000px: function(a) {
           return $(a).width() > 1000;
      }
   });
  $('.box:moreThen1000px').click(function() {
      // creating a simple js alert box
      alert('The element that you have clicked is over 1000 pixels wide');
  });
});


22. 統計元素個數(Count a element)

  1. $(document).ready(function() {
  2. $("p").size();
  3. });
$(document).ready(function() {
   $("p").size();
});


23. 自定義Bullets(Use Your Own Bullets)

  1. $(document).ready(function() {
  2. $("ul").addClass("Replaced");
  3. $("ul > li").prepend("‒ ");
  4. // how to use
  5. ul.Replaced { list-style : none; }
  6. });
$(document).ready(function() {
   $("ul").addClass("Replaced");
   $("ul > li").prepend("‒ ");
 // how to use
 ul.Replaced { list-style : none; }
});


24. 引用google分發的jQuery(Let Google host jQuery for you)

  1. //Example 1
  2. <script src="http://www.google.com/jsapi"></script>
  3. <script type="text/javascript">
  4. google.load("jquery", "1.2.6");
  5. google.setOnLoadCallback(function() {
  6. // do something
  7. });
  8. </script><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript"></script>
  9. // Example 2:(the best and fastest way)
  10. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
//Example 1
<script src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("jquery", "1.2.6");
google.setOnLoadCallback(function() {
    // do something
});
</script><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript"></script>

 // Example 2:(the best and fastest way)
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>


25. 禁用jQuery動畫(Disable jQuery animations)

  1. $(document).ready(function() {
  2. jQuery.fx.off = true;
  3. });
$(document).ready(function() {
    jQuery.fx.off = true;
});


26. 防止不兼容衝突(No conflict-mode)

  1. $(document).ready(function() {
  2. var $jq = jQuery.noConflict();
  3. $jq('#id').show();
  4. });
$(document).ready(function() {
   var $jq = jQuery.noConflict();
   $jq('#id').show();
});

發佈了41 篇原創文章 · 獲贊 9 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章