我的Jquery代码示例中的函数如下所示:
$(document).on("click",".delete", function(del) {
var foo='del';
connect(foo);
alert("connected");
});
“connect”功能如下所示:
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”。
使用此代码,我收到一条错误消息“未捕获的ReferenceError:del未在文件中定义...”对于此,什么是正确的解决方案?
答案 0 :(得分:1)
您必须将事件传递给其他功能。目前,您传递字符串'del'
而不是变量del
(事件)。
$(document).on("click",".delete", function(event) {
connect(event);
});
为避免混淆,建议您使用event
(或e
)代替del
或foo
。
答案 1 :(得分:0)
jQuery事件处理程序通常传递jQuery.Event类型的对象
您需要拥有(或生成)此类型的对象才能调用preventDefault()
函数。
您可以从点击处理程序传递一个,或者,如果您愿意,可以创建一个新的。
要使用现有的click事件对象,只需将其传递给例如:
$(document).on("click",".delete", function(del) {
connect(del);
alert("connected");
});
使用新的事件对象:
var foo = jQuery.Event( "del" );
connect(foo);
事实上,你唯一的错误就是在del