2010-12-06 25 views
1

J'essaie de créer mon propre plugin jquery mais j'ai des problèmes à faire bouillir l'événement à la page (je pense que c'est le problème). J'appelle le plugin comme ça.jquery - événement plugin bubble plugin

$('div.testdiv1').bpcolourpicker 
({ 
    onClick: onClickCallback 
}); 

var onClickCallback = function() 
{ 
    //alert('testpage'); 
} 

PLUGIN CODE-

var defaults = 
    { 
     returncolour: 'ff0000', 
     showtextbox: true, 
     onClick: function() { } 
    }; 
    var options = $.extend(defaults, options); 



    var onClick = function() 
    { 
     // default 
    } 

    // Select a colour 
    $(thisdiv).find('div.bpcolourpicker table.colours div').click(onClick, function() 
    { 
     var divtitle = RGBToHex($(this).attr('title')); 
     $(thisdiv).find('input#chosencolour').val(divtitle); 
    }); 

Donc ce que je veux arriver est lorsque la méthode de clic est tiré, je veux bubble cet événement à la page principale que je vous appelle « onClick: onClickCallback 'donc j'aurais pensé onClickCallBack gérerait l'événement.

Quelqu'un peut-il aider?

Merci d'avance.

+1

Vous ne voulez pas appeler 'options.onClick'? – sje397

Répondre

2

Vous passez le onClickCallback avant de définir la variable.

Votre code échoue de la même façon que

alert(num); 
var num = 3; 

Si vous modifiez le rappel à une fonction déclaration, comme function onClickCallback() { ... }, cela fonctionnera. Les instructions de fonction sont utilisables avant leurs définitions, contrairement aux variables normales.


En outre, vous ne pouvez pas ajouter deux gestionnaires d'événements en passant deux paramètres à .click().
Au lieu de cela, vous devez appeler explicitement onClick() à partir de votre gestionnaire.

+0

Ah ok, je les ai échangés mais ça ne fonctionne toujours pas. – tmutton

+0

Rookie erreur - Je l'ai maintenant changé à une fonction et l'appeler comme si $ ('div.testdiv1'). Bpcolourpicker ({ onClick: onClickCallback }); et également pris le paramètre onclick de l'événement oh et à la fin de cet événement j'appelle onClick mais son ne fonctionne pas :( – tmutton

+1

@code: Comme @ sje397 souligné, vous devez appeler 'options.onClick' – SLaks