2014-09-04 94 views
0

我的jQuery代码样本中的功能是这样的:的Jquery的preventDefault

$(document).on("click",".delete", function(del) { 
    var foo='del'; 
    connect(foo); 
    alert("connected"); 
}); 

与“连接”功能看起来像:

function connect(foo){ 
    var networkState = navigator.network.connection.type; 
    if (networkState == Connection.NONE){ 
     navigator.notification.alert('There is no connection.','','Error','Ok');  
     foo.preventDefault(); 
    } 
} 

我需要的是“连接“检查互联网连接后功能停止执行其他功能。在这种情况下,在执行警报之前,功能“del”。

通过此代码,我收到一条错误消息“Uncaught ReferenceError:del未在文件中定义...”对此,什么才是正确的解决方案?

+0

你能否详细说明你的问题? – 2014-09-04 16:14:13

+0

你是否包含phonegap插件? navigator.network.connection.type是一个phonegap功能 – 2014-09-04 16:23:46

回答

1

您必须将事件传递给其他函数。目前,您通过字符串'del'而不是变量del(该事件)。

$(document).on("click",".delete", function(event) { 
    connect(event); 
}); 

为了避免混淆,我建议使用event(或e)代替delfoo

0

jQuery的事件处理程序通常jQuery.Event

你必须(或产生)这种类型的一个目的是具有存在于preventDefault()的函数,在调用它传递类型的对象。

您可以从点击处理程序传递一个,或者,如果您愿意,可以创建一个新的。

要使用现有的click事件对象只需通过如传递:

$(document).on("click",".delete", function(del) { 
    connect(del); 
    alert("connected"); 
}); 

要使用一个新的事件对象:

var foo = jQuery.Event("del"); 
connect(foo); 

事实上出现在唯一的错误被放在引号del