Tag: javascript events

在Javascript中的PMT

我试图编写相当于EXCEL PMTfunction的代码。 在Java Script中,公式如下所示: function PMT (ir, np, pv, fv ) { /* ir – interest rate per month np – number of periods (months) pv – present value fv – future value (residual value) */ pmt = ( ir * ( pv * Math.pow ( (ir+1), np ) + fv ) ) / ( […]

从函数内部调用$(document).ready()是否安全?

如果我在函数中使用$(document).ready()处理程序,它是否仍然保证其中的代码只有在文档准备就绪时才会运行,即使文档就绪事件过去发生得很好?

从jQuery ajax请求返回数据

我正在尝试获取一个函数来执行ajax查询,然后将解释的JSON作为对象返回。 但无论出于何种原因,一旦执行此请求,只能从函数内访问数据。 function getCacheImage(direction) { jQuery.ajax({ url: json_request_string, success: function(data) { return data; } }); } 如何让这个函数适当地返回’数据’? 谢谢。

Javascript(jquery) – 附加到一个事件的多个处理程序:如何只分离一个?

在这个模块中我正在研究我在窗口中有一个’resize’事件的监听器。 每次运行模块时,我都需要检查是否已经有一个监听器注册到该事件并将其分离,以避免不必要的行为,内存泄漏等。 到目前为止一切都那么好,但是,在我们正在研究的这个应用程序中,有些处理程序已经附加到’resize’事件并且我不能调用$(window).off(‘resize’) ,因为这样会刷新之前由其他插件或模块注册的所有其他事件处理程序。 话虽如此,我想知道是否有办法识别我的处理程序,只分离我自己注册的东西。 如何在我的事件处理程序中设置标识符以便在.off()函数中引用? 你能帮忙的话,我会很高兴。

如果输入为空,则jQuery输入事件不会触发

我有一个jQuery事件处理程序,可以响应每个更改 元件: $(“#myId”).bind(‘input’, function (e) { // Do Stuff }); 这很有效,除非#myId的输入为空(例如输入框中只有1个字符,我用Backspace删除它)。 如果输入变空,则事件不会触发。 如果我然后输入一个字符,事件就会触发。 这是一个已知的问题? 难道我做错了什么? 输入变空时以何种方式获取事件? 更新 输入Backspace时,事件不会触发,至少在IE9中。

如果在keyup上添加了char,则不会触发输入中的Google Chrome更改事件

$(‘input#not-gonna-work’).bind({ keyup: function(){ console.log(‘Typed a key’); $(this).val($(this).val() + ‘.’);// try with any other char }, change: function(){ console.log(‘I\’ma changed input’); } }); 我在这个简化的jsfiddle示例中暂存了这个bug。 与此错误相关的问题是我有一个正在构建的财务应用程序,如果输入数据发生更改,我需要显示“保存更改”按钮。 因为我需要在keyup立即插入千位分隔符(如果需要),这个bug真的让我烦恼并破坏了这个function。 要重现它,请转到jsfiddle示例,在第一次输入时打开控制台中的chrome类型, keyup事件将被正确触发,而不是使用制表符或单击其外部的非焦点输入,并且不会触发change事件。 对其他输入执行相同操作并将触发change 。 我在Firefox中对此进行了测试,它按预期工作。 我正在使用的Chromium版本是14.0.835.202(Developer Build 103287 Linux)Ubuntu 11.10 和 尝试直接从Chrome网站新安装的Google Chrome 15.0.874.106。 我可以在change事件上插入分隔符,但由于用户将输入大量7位以上的数字,因此在键入时插入分隔符会更好。

如何使用jQuery自动选项到下一个字段?

在jQuery中,如何触发用户标签到下一个输入字段的行为? 我试过这个: var e = jQuery.Event(“keydown”); e.which = 9; // # Key code for the Tab key $(“input”).trigger(e); 但是触发事件不会将光标移动到下一个字段。 我想我可以使用focus()手动移动光标,但是确定下一个应该是哪个字段是浏览器已经知道该怎么做的事情,所以触发标签似乎更清晰。 有任何想法吗?

如何在modal dialog中设置输入值?

我正在研究“添加链接”function。 为此,我正在使用Twitter Boostrap JS的Modal插件 。 在主页面上只有要填充的“链接”字段,当用户点击“添加链接”按钮时,会弹出一个模式,用户会看到完整的表单以填充3个字段:链接,标题,标签。 但是,我希望链接字段预先填充上一步的值。 它与您在delicious.com上“保存链接”时发生的情况类似。 感谢Joe的帮助( 上一个问题 )我可以在modal dialog上打印linkURL,但重要的是此linkURL是带有3个字段(链接,标题,标签)的表单的链接字段的值。 知道如何做到这一点? 谢谢! Example $(document).ready(function() { $(‘#modal-from-dom’).bind(‘show’,function() { $(“.modal-body”).html($(“#linkURL”).val()); }); }); × Add Link <!– ” –> Add Link Add Link

检测是否在jQuery中手动触发滚动事件

这个问题很久以前就已经在这里提出过: 检测用户的jquery事件触发器或代码调用 但它从来没有得到最终的回答(或者我可能根本无法正确搜索)。 是否可以检测scroll事件是由用户还是由jQuery animatefunction触发的? 我正在尝试阻止scroll事件触发自己,同时做这样的事情: $(document).scroll(function(){ $(“html”).stop(true); var number = 400; //some other stuff is happening here clearTimeout(tout); tout = setTimeout(function(){ if(top == $(document).scrollTop()){ $(“html”).animate({ scrollTop: (number), easing: “easeInQuad”, duration: 110 }); } },120); }); 这段代码似乎合适: $(‘#scroller’).scroll(function(e) { if (e.originalEvent) { console.log(‘scroll happen manual scroll’); } else { console.log(‘scroll happen by call’); } }); […]

如何模糊contentEditable = true的div?

如何模糊/聚焦contentEditable = true的div? 我尝试过$(elm).blur()和$(elm).attr(‘contentEditable’, false);