LinkButton no invoca en click ()

¿Por qué no funciona esto?

  $(document).ready(function() { $('.myButton').click(); });     
Click

¿Desea enviar el formulario o agregar un evento Click? Su botón de enlace se traduce a

 Click 

, por lo que no tiene ningún clic en javascript. Por lo tanto, .click(); no hace nada.
No lo he probado, pero quizás esto funcione:

 eval($('.myButton').attr('href')); 

el disparador (‘clic’) activa el detector de eventos de clic de jQuery con el que .NET no está conectado. Simplemente puede activar el evento de clic de javascript que irá a (o ejecutará en este caso) lo que está en el atributo href:

  $('.myButton')[0].click(); 

o

  ($('.myButton').length ? $('.myButton') : $(''))[0].click(); 

Si no está seguro de que el botón va a estar presente en la página.

Joe

Si necesita el evento del lado del servidor OnClick del botón de enlace para disparar, debe usar __doPostback (eventTarget, eventArgument).

ex:

   

debe asignar un controlador de eventos para que se active cuando se active el evento click

  $(document).ready(function() { $('.myButton', '#form1') .click(function() { /* Your code to run when Click event is raised. In this case, something like window.location = "http://..." This can be an anonymous or named function */ return false; // This is required as you have set a PostbackUrl // on the LinkButton which will post the form // to the specified URL }); }); 

He probado lo anterior con ASP.NET 3.5 y funciona como se esperaba.

También está el atributo OnClientClick en el botón Enlace, que especifica la secuencia de comandos del lado del cliente que se ejecutará cuando se genere el evento de clic.

¿Puedo preguntarte qué estás tratando de lograr?

El controlador de eventos de clic tiene que realizar una acción. Prueba esto:

 $(function () { $('.myButton').click(function () { alert('Hello!'); }); }); 

necesitas darle al linkButton un CssClass = “myButton” luego usar esto en la parte superior

 $(document).ready(function() { $('.myButton').click(function(){ alert("hello thar"); }); }); 

Esa es una dificil. Como lo entiendo, quieres imitar el comportamiento de hacer clic en el botón en el código javascript. El problema es que ASP.NET agrega un código javascript de lujo al controlador onclick.

Al activar manualmente un evento en jQuery, solo se ejecutará el código de evento agregado por jQuery, no el javascript en el atributo onclick o el atributo href. Entonces, la idea es crear un nuevo controlador de eventos que ejecute el javascript original definido en los atributos.

Lo que voy a proponer no ha sido probado, pero le daré una oportunidad:

 $(document).ready(function() { // redefine the event $(".myButton").click(function() { var href = $(this).attr("href"); if (href.substr(0,10) == "javascript:") { new Function(href.substr(10)).call(this); // this will make sure that "this" is // correctly set when evaluating the javascript // code } else { window.location = href; } return false; }); // this will fire the click: $(".myButton").click(); }); 

Solo para aclarar, solo FireFox sufre de este problema. Consulte http://www.devtoolshed.com/content/fix-firefox-click-event-issue . En Firefox, las tags anchor (a) no tienen la función de hacer clic () para permitir que el código JavaScript simule directamente los eventos de clic en ellas. Le permiten mapear el evento click de la etiqueta de anclaje, pero no simularlo con la función click ().

Afortunadamente, ASP.NET coloca el código de devolución de JavaScript en el atributo href, donde puede obtenerlo y ejecutar eval. (O simplemente llame a window.location.href = document.GetElementById (‘LinkButton1’). Href;).

Alternativamente, puedes simplemente llamar a __doPostBack (‘LinkButton1’); tenga en cuenta que ‘LinkButton1’ debe ser reemplazado por el ClientID / UniqueID del LinkButton para manejar contenedores de nombres, por ejemplo, UserControls, MasterPages, etc.

Jordan Rieger