chevron-left chevron-right

Piotr Nalepa Frontend, architektura i AI

[jQuery] 10 ciekawych tricków które warto znać

Ta wersja
blog.piotrnalepa.pl/2010/03/05/jquery-10-ciekawych-trickow-ktore-warto-znac
Opublikowano
Autor
, Staff Software Engineer
Kategoria
JavaScript
Uwagi
Napisz do mnie · Napisz na X

Ten wpis ma 16 lat. Od tego czasu przeglądarki i narzędzia mogły się zmienić, więc zanim użyjesz kodu, sprawdź go z aktualną dokumentacją.

W dzisiejszym artykule mam zamiar przedstawić Tobie 10 ciekawych, przydatnych tricków, które powinien znać każdy webmaster, a dzięki którym rozwiązanie wielu problemów w trakcie budowania stron WWW będzie łatwiejszych do rozwiązania.
Do zbudowania części tricków wykorzystałem najnowszą wersję biblioteki jQuery oznaczonej numerkiem 1.4.2. Dlatego też, warto się w nią zaopatrzyć przed dodaniem przedstawionych skryptów do swojego projektu.

  1. Sekcja 1Blokada prawego przycisku myszy

    Przykład 1JavaScript
    $(document).ready(function(){
        $(document).bind("contextmenu",function(e){
            return false;
        });
    });

  2. Sekcja 2Otwieranie linków w nowym oknie

    Jeśli korzystacie z XHTML 1.0 Strict to zauważyliście, że nie pozwala on na dodawanie atrybutu target do linków w przypadku gdy strona ma być poprawnie zwalidowana.

    Przykład 2JavaScript
    $(document).ready(function() {
       //Przykład 1: Każdy link się otworzy w nowym oknie
       $('a[href^="http://"]').attr("target", "_blank");
     
       //Przykład 2:Linki z atrybutem rel="external" będą się otwierały w nowym oknie
       $('a[@rel$='external']').click(function(){
          this.target = "_blank";
       });
    });

  3. Sekcja 3Wykrywanie przeglądarki

    Przykład 3JavaScript
    $(document).ready(function() {
    // Firefox 2 i wyżej
    if ($.browser.mozilla && $.browser.version >= "1.8" ){
     
    }
     
    // Safari
    if( $.browser.safari ){
     
    }
     
    // Google Chrome
    if( $.browser.chrome){
     
    }
     
    // Opera
    if( $.browser.opera){
     
    }
     
    // IE6 i starsze
    if ($.browser.msie && $.browser.version < = 6 ){
     
    }
     
    // IE7/IE8
    if ($.browser.msie && $.browser.version > 6){
     
    }
    });

  4. Sekcja 4Zmiana rozmiaru czcionki

    Przykład 4JavaScript
    $(document).ready(function() {
      // Restowanie rozmiaru, defaultowy rozmiar
      var oryginalnyRozmiar = $('html').css('font-size');
        $(".resetFont").click(function(){
        $('html').css('font-size', oryginalnyRozmiar);
      });
      // Powiększanie czcionki
      $(".powiekszRozmiar").click(function(){
        var obecnyRozmiar = $('html').css('font-size');
        var obecnyRozmiarNum = parseFloat(obecnyRozmiar, 10);
        var nowyRozmiar = obecnyRozmiarNum*1.2;
        $('html').css('font-size', nowyRozmiar);
        return false;
      });
      // Zmniejsz rozmiar czcionki
      $(".decreaseFont").click(function(){
        var obecnyRozmiar = $('html').css('font-size');
        var obecnyRozmiarNum = parseFloat(obecnyRozmiar, 10);
        var nowyRozmiar = obecnyRozmiarNum*0.8;
        $('html').css('font-size', nowyRozmiar);
        return false;
      });
    });

  5. Sekcja 5Sprawdzenie czy element jest pusty

    Przykład 5JavaScript
    $(document).ready(function() {
      if ($('#id').html()) {
       // jakiś kod
       }
    });

  6. Sekcja 6Zastępowanie elementu innym

    Przykład 6JavaScript
    $(document).ready(function() {
       $('#id').replaceWith('element zastępujący');
    });

  7. Przykład 7JavaScript
    $(document).ready(function() {
    	$("div").click(function(){
    	  //pobieranie adresu z atrybutu href danego linka
    	  window.location=$(this).find("a").attr("href"); return false;
    	});
    });

  8. Sekcja 8Zmiana klas elementu zależnie od szerokości okna przeglądarki

    Przykład 8JavaScript
    $(document).ready(function() {
       function sprawdzRozmiarOkna() {
    	if ( $(window).width() > 1200 ) {
    		$('body').addClass('duzy');
    	}
    	else {
    		$('body').removeClass('duzy');
    	}
       }
    $(window).resize(sprawdzRozmiarOkna);
    });

  9. Sekcja 9Blokowanie animacji jQuery

    Przykład 9JavaScript
    $(document).ready(function() {
        jQuery.fx.off = true;
    });

  10. Sekcja 10Tryb bezkonfliktowy jQuery

    Dzięki temu można korzystać z innych bibliotek JavaScript bez obawy o konflikt między nimi.

    Przykład 10JavaScript
    $(document).ready(function() {
       var $jq = jQuery.noConflict();
       $jq('#id').show();
    });

Mam nadzieję, że to zestawienie ciekawych kodów pomoże Ci w tworzeniu ciekawych stron WWW unikając zbędnych problemów.

Udostępnij
Uwagi

O autorze

Staff Software Engineer

Piszę na tym blogu od 2009 roku, a strony i aplikacje webowe tworzę zawodowo od 14 lat. Obecnie w Bishop Fox prowadzę frontend platformy Cosmos, od samego początku projektu. Wcześniej pracowałem m.in. w OLX, KUDO, Auto1 i eZ Systems. Piszę tu o tym, czego nauczyłem się w praktyce: o JavaScripcie, TypeScripcie, Reakcie, CSS-ie i architekturze frontendu. Występowałem też jako prelegent na konferencjach w Polsce i Europie. Masz pytanie albo pomysł na wpis? Daj znać!