He estado tratando de hacer que un elemento siga su enlace (que descarga un archivo) y luego sea redirigido a una nueva página. Por alguna razón, el elemento descarga el archivo pero la función onclick nunca se ejecuta. He intentado un par de implementaciones diferentes ... Esto es lo que he hecho hasta ahora:

$("#download").onclick = function() {window.location.assign('www.redirect.com')};

También he intentado todo esto con registros de consola que tampoco se ejecutan nunca.

function safari_click() {
    window.location.assign("www.redirect.com");
}

$("#download").onclick = safari_click;

//finally also this one:

$("#download").onclick = function() {safari_click()};

No puedo hacer que ninguno de estos active la función onclick.

Editar: Además, para ser claros, el elemento #download es un enlace que también tiene definido href. No estoy seguro si esto lo está arruinando de alguna manera.

-1
user3666149 3 sep. 2014 a las 22:47

2 respuestas

La mejor respuesta

Parece que estás confundiendo un poco la API de jQuery.

Prueba esto:

function safari_click() {
    window.location.href = "www.redirect.com";
}

$("#download").click(safari_click);

Más información sobre click () aquí: http://api.jquery.com/click/

0
Antiga 3 sep. 2014 a las 18:59

Cuando llama a jquery $, devuelve un objeto jQuery, para acceder al clic del elemento necesita acceder al primer elemento dentro del objeto jQuery.

Tratar :

$("#download")[0].onclick = function() {window.location.assign('www.redirect.com')};

Puedes usar :

$("#download).click(function() { window.location.assign('www.redirect.com'); });

0
seduardo 3 sep. 2014 a las 18:54