2014-09-03 83 views
-1

我一直在试图获得一个元素来跟随它的链接(下载一个文件),然后被重定向到一个新的页面。出于某种原因,元素下载文件,但onclick函数从不执行。我已经尝试了几个不同的实现......这是我到目前为止已经完成:Onclick不被称为

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

我也尝试了所有的这些在他们控制台日志也从来没有得到执行。

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

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

//finally also this one: 

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

我不能得到任何这些实际触发onclick函数。

编辑:另外,为了清楚#download元素是一个链接,它也有href定义。不知道这是否搞乱了它。

+1

通过使用jQuery,你应该使用他们的母语。点击'(功能())'或'。对( 'click',function(){})'而不是通过'.onclick'属性分配一个处理程序。 – 2014-09-03 18:49:59

+5

如果您使用的是jQuery,请[**首先阅读关于事件处理的教程](http://learn.jquery.com/events/event-basics/)。这不是将事件处理程序绑定到jQuery对象的正确方法(DOM元素具有'onclick'属性,jQuery对象则没有)。该教程解释了如何做到这一点。 – 2014-09-03 18:50:15

+0

可否请提一下html代码或(dom)。我认为你没有使用#download作为编号 – 2014-09-03 18:51:19

回答

0

看起来你正在把jQuery的API搞混了。

试试这个:在点击

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

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

更多的信息()这里:http://api.jquery.com/click/

+0

啊哈!这工作!现在控制台日志正在输出,但重定向仍然没有被触发。感谢您的正确方向! – user3666149 2014-09-03 18:56:24

+0

从原来的问题有点偏离主题......但:window.location.href =“www.redirect.com”; – Antiga 2014-09-03 18:57:19

0

当你调用jQuery的$它返回一个jQuery对象,访问元素的onclick你需要访问内部jQuery的第一要素目的。

尝试:

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

你可以使用:

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