2013-08-01 16 views
5

Sto cercando di imparare eventi personalizzati jquery.Evento personalizzato semplice in jquery

Devo attivare un evento semplice al caricamento della pagina.

HTML:

<div id="mydiv"> my div</div> 

Devo chiamare il mio proprio evento per sparare un avviso

$("#mydiv").custom(); 

ho provato il codice qui sotto.

function customfun() 
    { 
     $("#mydiv").trigger("custom"); 
    } 

    $(document).ready(function() { 

     $("#mydiv").bind(customfun, function() { 
      alert('Banana!!!'); 
     }); 

    }); 
+0

bind() prevede che il parametro 1 sia una stringa o un oggetto, non una funzione. – Virus721

risposta

2

Per chiamare gli eventi personalizzati come le funzioni di jQuery è necessario, beh, definire una tale funzione tramite $.fn:

$(document).ready(function() { 
    //define the event 
    $(document).on('custom', function() { 
     alert('Custom event!'); 
    }); 

    //define the function to trigger the event (notice "the jquery way" of returning "this" to support chaining) 
    $.fn.custom = function(){ 
     this.trigger("custom"); 
     return this; 
    }; 

    //trigger the event when clicked on the div 
    $("#mydiv").on("click", function() { 
     $(this).custom(); 
    }); 
}); 
4

È necessario associare allo stesso nome evento - "personalizzato" - come quello attivato. Come questo:

$("#mydiv").on("custom", function() { ... 

Fiddle

+2

'.on()' è il prossimo '.bind()' .. :) :) – bipen

+0

Grazie per la risposta. ho visto in alcuni esempi di codice, le persone usano $ ("# mydiv"). customevent(); diverso da clickevnts..etc. quindi, come posso chiamare questo tipo di evento? – chamara

0

si può chiamare così facendo:

$.fn.mycustom = function(){ 
    return this; 
}; 

$("div").mycustom();