Pasar el código detrás del valor de la variable a la function jQuery

No soy un experto en jQuery y estoy tratando de pasar algunos valores variables de C # a mi function llamada en events keyup y onclick. Hasta ahora tengo algo como esto:

$('mydiv').bind('keyup click', function(event) {} 

pero lo que necesito debe ser:

 $('mydiv').bind('keyup click', function(event, UserId, ControlId) {} 

, donde UserId y ControlId son algunos identificadores que obtengo en el código detrás de la cadena de consulta. También estoy usando jQuery 1.6.4.

¿Cómo puedo hacer esto, preferiblemente sin usar campos de input ocultos? Gracias.

Usar on lugar de bind

A partir de jQuery 1.7, el método .on () es el método preferido para adjuntar manejadores de events a un documento.

Pasar valores del server al cliente con afeitadora (si está usando asp.net mvc):

 $('mydiv').on('keyup click', function(event, @UserId, @ControlId) {} 

o si su webforms:

 $('mydiv') .on('keyup click', function(event, <%= UserId %>, <%= ControllId %>) {} 

Yo usaría attributes de datos:

 $('mydiv').data({ userId: <%= UserId %>, ControllId: <%= ControllId %> }) 

luego puede acceder a esos datos en el evento de clic:

 $('mydiv').on('click', function(event) { var userId = $(this).data('userId'); var ControlId = $(this).data('ControlId'); }); 

declarar la variable como pública en código detrás

 public string userId="abc"; 

Acceda al lado del cliente

 var uid='<%=userId %>'; $('mydiv').bind('keyup click', function(event, uid, ControlId) {} 

Los ámbitos de Javascript no son como los ámbitos en otros idiomas, de modo que si escribe

 var UserId = 5; var ControlId = 5; $('mydiv').bind('keyup click', function(event) { alert( UserId ); }); 

funcionará

echa un vistazo a http://jsfiddle.net/FgYTL/1/

¿Mi mydiv es una class, id o una variable jQuery? Parece que tienes que hacer

 $('div.mydiv') or $('div#mydiv')