Jquery preventDefault的另一个函数

时间:2014-09-04 16:12:28

标签: jquery

我的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未在文件中定义...”对于此,什么是正确的解决方案?

2 个答案:

答案 0 :(得分:1)

您必须将事件传递给其他功能。目前,您传递字符串'del'而不是变量del(事件)。

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

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

答案 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

附近加上引号