2013-08-01 11 views
5

Próbuję nauczyć się niestandardowych zdarzeń jquery.Proste zdarzenie niestandardowe w jquery

Muszę odpalić proste wydarzenie po wczytaniu strony.

HTML:

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

Muszę zadzwonić własną imprezę, aby zwolnić alert

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

próbowałem poniższy kod.

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

    $(document).ready(function() { 

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

    }); 
+0

Funkcja bind() oczekuje, że parametr 1 będzie ciągiem znaków lub obiektem, a nie funkcją. – Virus721

Odpowiedz

2

Aby wywołać niestandardowych zdarzeń jak funkcje jquery trzeba dobrze zdefiniować taką funkcję poprzez $.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

trzeba wiązać tej samej nazwie wydarzenia - „niestandardowym” - jak ten, który wywołał. Tak:

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

Fiddle

+2

'.on()' jest kolejnym '.bind()' .. :) :) – bipen

+0

Dzięki za odpowiedź. widziałem w niektórych próbkach kodu, ludzie używają $ ("# mydiv"). customevent(); inne niż wbudowane clickevnts..etc. więc jak mogę nazwać to wydarzenie? – chamara

0

można nazwać to w ten sposób:

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

$("div").mycustom(); 
Powiązane problemy