jQuery .on()仅在第一次使用

丹·比尤(Dan Beaulieu)

首先,我无疑是jQuery的新手,我知道这不是一个新问题。在搜索后,我看到了许多类似的帖子,但是我尝试了这些帖子中的解决方案,但它们没有得到积极的结果。我在底部添加了一些我尝试过的东西的列表。

到目前为止如何运作...

我正在ASP.NET和jQuery中开发单页应用程序。我在Default.aspx.cs中使用Web方法与C#和数据库集成。

该应用程序从数据库中获取员工的姓名,并使用ASP.NET转发器在屏幕上为每个员工创建一个框。然后可以将这些框拖放到包含jQuery droppables的弹出窗口中,这将根据员工插入的框来更新数据库中的员工状态。所有这些都可以100%正常运行。

问题...

我正在尝试添加可取消的超时功能,以便一个人可以在提交数据库之前取消其交互。

第一次将一个盒子放到放置区中,一切都正常,我的意思是100%符合预期,包括将状态记录到数据库中。然后,对于每次删除之后,只有超时功能起作用,“确定”和“取消”按钮完全不会显示在屏幕上,但是3秒钟后,超时功能会确认操作,并将所需的状态更改记录到数据库中。

我的jQuery脚本相当长(就像这篇文章(对不起)),所以我将尝试仅共享最相关的代码部分,希望它足以为您提供一些见识。

default.aspx

<div class="timeout">
    <div class="really">
        Confirm?
        <div class="progress">
            <div class="progress-bar" role="progressbar" data-transitiongoal="105"></div>
        </div>
    </div>
    <div class="okay">
        <img src="Content/ok3.png" />
    </div>
    <div class="cancel">
        <img src="Content/cancel3.png" />
    </div>
    <br />
</div>
<div class="promptpicker">
    <div>
        <h2>Select Date-Range</h2>
        <p>Select the first and last dates to enter your time off.</p>
    </div>
    <input id="e4" name="e4">
    <div class="submitDates">
        Submit
    </div>
</div>
...
//This code continues to show the asp.net repeaters for the employee boxes and flyout zones...

app.js(相关代码)

$(".okay").off();
$(".cancel").off();
$(".timeout").delay(1000).css('visibility', 'visible');
$(".okay").delay(1000).css('visibility', 'visible');
$(".cancel").delay(1000).css('visibility', 'visible');
$('.progress .progress-bar').delay(1000).progressbar({ display_text: 'fill' });


/*************************************************************************
*     User Selects Nothing
**************************************************************************/
var timeoutId = setTimeout(function () {

    $(".really").replaceWith('<div class="really">Confirmed.</div>');
    $('.cancel').fadeTo(300, 0, function () {
        $(".cancel").css('visibility', 'hidden');
    });

    $(".okay").animate({
        marginRight: "-=300px"
    }, 800).animate({
        opacity: 0
    }, 300);

    $("div").promise().done(function () {
        $('.timeout').fadeTo(100, 0, function () {
            $(".timeout").css('visibility', 'hidden');
        });
    });

    $(".dimbackground-curtain").delay(1200).fadeOut(1000);
    updateUserState(ui, state, id);
}, 3100);

/*************************************************************************
*     User clicks OK
**************************************************************************/

$(".okay").on("click", function () {
    clearTimeout(timeoutId);
    $(".really").replaceWith('<div class="really">Confirmed.</div>');
    $('.cancel').fadeTo(300, 0, function () {
        $(".cancel").css('visibility', 'hidden');
    });

    $(".okay").animate({
        marginRight: "-=300px"
    }, 800).animate({
        opacity: 0
    }, 300);

    $("div").promise().done(function () {
        $('.timeout').fadeTo(100, 0, function () {
            $(".timeout").css('visibility', 'hidden');
        });
    });

    $(".dimbackground-curtain").delay(1200).fadeOut(1000);
    updateUserState(ui, state, id);

});


/*************************************************************************
*     User clicks cancel
**************************************************************************/

$(".cancel").on("click", function () {
    clearTimeout(timeoutId);
    $(".really").replaceWith('<div class="really">Cancelled.</div>');
    $('.okay').fadeTo(300, 0, function () {
        $(".okay").css('visibility', 'hidden');
    });

    $(".cancel").animate({
        marginLeft: "-=300px"
    }, 800).animate({
        opacity: 0
    }, 300);

    $("div").promise().done(function () {
        $('.timeout').fadeTo(100, 0, function () {
            $(".timeout").css('visibility', 'hidden');
        });
    });

    $(".dimbackground-curtain").delay(1200).fadeOut(1000);

});

我尝试过的事情:

有与此类似的帖子,其中之一是“ jQuery .on()仅可使用一次”,建议使用委托。我试着用.delegate() live().one()在阅读了一些文档之后,我还包括了.off()方法,我已经在各种地方尝试过了,包括在链的顶部。我知道这可能是我所缺少的非常简单的东西。

丹·比尤(Dan Beaulieu)

我正在将容器div衰减为0,并且从未对其进行重置

 $("div").promise().done(function () {
        $('.timeout').fadeTo(100, 0, function () {
            $(".timeout").css('visibility', 'hidden');
        });
    });

将其添加到代码顶部可解决此问题:

$(".timeout").delay(1000).css('visibility', 'visible');
$(".timeout").css('opacity', '1');

$(".okay").delay(1000).css('visibility', 'visible');
$(".okay").css('opacity', '1');
$(".okay").css('margin', 'initial');

$(".cancel").delay(1000).css('visibility', 'visible');
$(".cancel").css('opacity', '1');
$(".cancel").css('margin', 'initial');

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用jquery / javascript防止第一次警报

来自分类Dev

jQuery UI可排序占位符出现在错误的位置,但仅在第一次悬停时出现

来自分类Dev

jQuery事件第一次不起作用

来自分类Dev

jQuery脚本第一次不起作用

来自分类Dev

jQuery | 点击操作仅在第一次有效

来自分类Dev

jQuery Mobile listview详细信息页面数据跟踪仅在第一次时有效

来自分类Dev

jQuery切换幻灯片仅在第一次时无法正确滑动

来自分类Dev

jQuery的焦点行事奇怪,只在第一次

来自分类Dev

jQuery函数仅在第一次按下提交按钮时调用控制器操作

来自分类Dev

将属性添加到jQuery中的<input>每个循环仅在第一次通过时?

来自分类Dev

第一次使用按钮后,jQuery不重新启动data-id

来自分类Dev

jquery .load()函数仅在第一次工作

来自分类Dev

jQuery验证-errorPlacement仅在第一次使用时有效

来自分类Dev

jQuery UI可排序占位符出现在错误的位置,但仅在第一次悬停时出现

来自分类Dev

从mysql获取的jQuery仅在第一次有效

来自分类Dev

jQuery .submit不会被第一次调用

来自分类Dev

jQuery事件第一次不起作用

来自分类Dev

jQuery脚本第一次不起作用

来自分类Dev

jQuery ajax发布仅在第一次有效

来自分类Dev

jQuery Mobile listview详细信息页面数据跟踪仅在第一次时有效

来自分类Dev

jQuery的下降不能在第一次?

来自分类Dev

jQuery单击事件仅在第一次工作

来自分类Dev

jQuery网格仅在第一次点击时加载,而在随后的点击时不重新加载

来自分类Dev

jQuery克隆div第一次

来自分类Dev

jQuery draggable - 只记住第一次拖动

来自分类Dev

Jquery从元素中删除属性(循环中)仅在第一次工作

来自分类Dev

jQuery datepicker 仅在第一次执行时运行

来自分类Dev

Jquery如何只找到第一次出现

来自分类Dev

页面仅在第一次通过 jquery 在 mvc 中刷新 ajax 调用响应

Related 相关文章

  1. 1

    使用jquery / javascript防止第一次警报

  2. 2

    jQuery UI可排序占位符出现在错误的位置,但仅在第一次悬停时出现

  3. 3

    jQuery事件第一次不起作用

  4. 4

    jQuery脚本第一次不起作用

  5. 5

    jQuery | 点击操作仅在第一次有效

  6. 6

    jQuery Mobile listview详细信息页面数据跟踪仅在第一次时有效

  7. 7

    jQuery切换幻灯片仅在第一次时无法正确滑动

  8. 8

    jQuery的焦点行事奇怪,只在第一次

  9. 9

    jQuery函数仅在第一次按下提交按钮时调用控制器操作

  10. 10

    将属性添加到jQuery中的<input>每个循环仅在第一次通过时?

  11. 11

    第一次使用按钮后,jQuery不重新启动data-id

  12. 12

    jquery .load()函数仅在第一次工作

  13. 13

    jQuery验证-errorPlacement仅在第一次使用时有效

  14. 14

    jQuery UI可排序占位符出现在错误的位置,但仅在第一次悬停时出现

  15. 15

    从mysql获取的jQuery仅在第一次有效

  16. 16

    jQuery .submit不会被第一次调用

  17. 17

    jQuery事件第一次不起作用

  18. 18

    jQuery脚本第一次不起作用

  19. 19

    jQuery ajax发布仅在第一次有效

  20. 20

    jQuery Mobile listview详细信息页面数据跟踪仅在第一次时有效

  21. 21

    jQuery的下降不能在第一次?

  22. 22

    jQuery单击事件仅在第一次工作

  23. 23

    jQuery网格仅在第一次点击时加载,而在随后的点击时不重新加载

  24. 24

    jQuery克隆div第一次

  25. 25

    jQuery draggable - 只记住第一次拖动

  26. 26

    Jquery从元素中删除属性(循环中)仅在第一次工作

  27. 27

    jQuery datepicker 仅在第一次执行时运行

  28. 28

    Jquery如何只找到第一次出现

  29. 29

    页面仅在第一次通过 jquery 在 mvc 中刷新 ajax 调用响应

热门标签

归档