发表于: 2017-05-21 23:46:48

1 880


今天完成的事:

修改bug,修改样式

明天计划的事:

赶紧DOME

遇到的问题;

之前把编辑接口和新增接口混在了一起,所以无论怎样我都是在新增,不是在编辑,今天看了下编辑接口,把这个bug 改了过来。

 收获:

哇,师姐。你居然不让我看原生,我投反对票,虽然JQ简单实用锋利,但是像我这样的菜鸟,不看看原生,以后面试一问原生的 岂不是要变傻b 了。好吧。。。JQ还是好用。

// 关闭窗口时弹出确认提示

$(window).bind('beforeunload', function(){

    // 只有在标识变量is_confirm不为false时,才弹出确认提示

    if(window.is_confirm !== false)

        return '您可能有数据没有保存';

});

在上面的代码中,我们增加了一个全局变量is_confirm来作为条件判断变量,只要该变量不为false时,才弹出确认提示框。当然,我们还需要添加一些代码来控制该变量,以确保在不希望弹出确认提示框的地方,不会弹出确认提示框。例如,我们希望在提交表单的时候,不弹出确认提示框。

// 提交表单时,不弹出确认提示框

$('form').bind('submit', function(){

    is_confirm = true;  

});

如果我们希望当用户进行提交表单、点击链接等页面内的任何跳转操作时都不弹出提示框,只有在点击标签页的关闭按钮或者浏览器的关闭按钮时才弹出确认提示框,那么我们该如何编写代码呢?由于标签页关闭按钮和浏览器关闭按钮均在页面以外,用户点击关闭按钮都需要将鼠标移动到页面以外的位置,因此我们可以通过鼠标的位置来进行判断。此外,我们也无需去时刻获取鼠标位置,我们只需要给当前页面的window对象(或body、外层容器等元素)注册mouseover、mouseleave事件即可。

//页面内的跳转操作均不弹出确认窗口

$(window).bind('mouseover mouseleave', function(event){

    is_confirm = event.type == 'mouseleave';

});

下面就以页面内的元素均不弹出确认提示窗口为例,编写一次完成的示例代码(基于jQuery):

(function(){

    // 关闭窗口时弹出确认提示

    $(window).bind('beforeunload', function(){

        // 只有在标识变量is_confirm不为false时,才弹出确认提示

        if(window.is_confirm !== false)

            return '您可能有数据没有保存';

    })

    // mouseleave mouseover事件也可以注册在body、外层容器等元素上

    .bind('mouseover mouseleave', function(event){

        is_confirm = event.type == 'mouseleave';

    });



返回列表 返回列表
评论

    分享到