2010-09-18 5 views
1

je le code suivant dans mon document prêt:passe paramètre e, jQuery

$('a').click(function(e) { 
     e.preventDefault(); 
     var $this = $(this); 
     var horizontalPadding = 30; 
     var verticalPadding = 30; 
     $('<iframe id="externalSite" class="externalSite" src="' + this.href + '" />').dialog({ 
      title: ($this.attr('title')) ? $this.attr('title') : 'External Site', 
      autoOpen: true, 
      width: 800, 
      height: 500, 
      modal: true, 
      resizable: true, 
      autoResize: true, 
      overlay: { 
       opacity: 0.5, 
       background: "black" 
      } 
     }).width(800 - horizontalPadding).height(500 - verticalPadding);    
    }); 

Je veux le faire de cette façon:

$('a').click(aFunction()) 

mais comment passe dois-je le paramètre e?

Répondre

1
function aFunction(e) { 
    e.preventDefault(); 
    var $this = $(this); 
    var horizontalPadding = 30; 
    var verticalPadding = 30; 
    $('<iframe id="externalSite" class="externalSite" src="' + this.href + '" />').dialog({ 
     title: ($this.attr('title')) ? $this.attr('title') : 'External Site', 
     autoOpen: true, 
     width: 800, 
     height: 500, 
     modal: true, 
     resizable: true, 
     autoResize: true, 
     overlay: { 
      opacity: 0.5, 
      background: "black" 
     } 
    }).width(800 - horizontalPadding).height(500 - verticalPadding);    
} 

$('a').click(aFunction); 

jQuery passera « e » à la fonction que vous fournissez - mais vous devez le transmettre sans parenthèses, de sorte que vous passez un objet de fonction, et non le résultat d'un appel de fonction.

1

Faites ceci:

function aFunction(e) { ... } 
$('a').click(aFunction); 

L'argument de l'événement est automatiquement passé.

1
$('a').click(); 

ou

$('a').trigger('click');