2014-09-04 79 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