我正在寻找新的东西添加到jQuery 1.7,我看到他们现在有jQuery.Callbacks() http://api.jquery.com/jQuery.Callbacks/ 。 该文档向您展示了如何使用jQuery.callbacks(),但没有任何适用的例子,当我想要使用它们。 看来你可以添加/删除callback列表中的callback,你可以做jQuery.callbacks()。fire(args),但是这只是closures了列表中的所有callback。 也许我错过了一些东西,但这似乎并不是很有用。 在我看来,当我第一次看到这个新function的时候,我认为你可以通过键/值对来使用它。 然后,这将提供一个简单的方法来pipe理应用程序中的一个地方的callback函数。 就像是 $.callbacks.add("foo", myFunction); 然后例如,如果我想在我的函数结束时调用该callback函数,我可以做类似的事情 $.callbacks().fire("foo", args); 然而,它看起来并不像你可以触发特定的callback,你只能用给定的参数或者没有任何参数来触发它们。 我看到的最接近的东西是赋予.fire()函数上下文来设置“this”属性的能力 .fireWith(context, args) 但这也不是很有帮助。 我误解了文档吗? 如果这是所需的function,那么这是有用的一些适用的例子。
我有一个旧的网站与JQuery 1.7,直到两天前正常工作。 突然,我的一些button不再工作,点击它们后,我在控制台中得到这个警告: 表单提交已取消,因为表单未连接 点击背后的代码是这样的: this.handleExcelExporter = function(href, cols) { var form = $('<form method="post"><input type="submit" /><input type="hidden" name="layout" /></form>').attr('action', href); $('input[name="layout"]', form).val(JSON.stringify(cols)); $('input[type="submit"]', form).click(); } 看来,Chrome 56不再支持这种types的代码。 不是吗? 如果是的话,我的问题是: 为什么这个突然发生? 没有任何弃用警告? 这个代码的解决方法是什么? 有没有办法强制铬(或其他浏览器)像以前一样工作而不更改任何代码? PS它不工作在最新的Firefox版本(没有任何消息)。 此外,它不能在IE 11.0和边缘! (都没有任何消息)
有没有什么办法在jQuery检查是否有任何父母,父母,曾祖父有一个类。 我有一个标记结构,让我在代码中做这样的事情: $(elem).parent().parent().parent().parent().hasClass('left') 但是,为了代码可读性,我想避免这种事情。 有没有办法说“任何父母/祖父母/曾祖父都有这个class级”? 我正在使用jQuery 1.7.2。
试图找出如何使用具有与之关联的多个事件的特定select器的Jquery .on()方法。 我以前使用.live()方法,但不太清楚如何用.on()完成同样的function。 请参阅下面的代码: $("table.planning_grid td").live({ mouseenter:function(){ $(this).parent("tr").find("a.delete").show(); }, mouseleave:function(){ $(this).parent("tr").find("a.delete").hide(); }, click:function(){ //do something else. } }); 我知道我可以通过调用来分配多个事件: $("table.planning_grid td").on({ mouseenter:function(){ //see above }, mouseleave:function(){ //see above } click:function(){ //etc } }); 但是我相信.on()的正确使用就像这样: $("table.planning_grid").on('mouseenter','td',function(){}); 有没有办法做到这一点? 或者这里最好的做法是什么? 我尝试了下面的代码,但没有骰子。 $("table.planning_grid").on('td',{ mouseenter: function(){ /* event1 */ }, mouseleave: function(){ /* event2 */ }, click: function(){ /* event3 […]
我发现jQuery 1.7中有一个新的方法.on()replace了早期版本中的.live() 。 我很想知道它们之间的区别,以及使用这种新方法的好处。
我的应用程序已dynamic添加下拉菜单。 用户可以根据需要添加任意数量。 我传统上使用jQuery的live()方法来检测其中一个下拉列表是否为change() ed: $('select[name^="income_type_"]').live('change', function() { alert($(this).val()); }); 从jQuery 1.7开始,我已经更新到: $('select[name^="income_type_"]').on('change', function() { alert($(this).val()); }); 看文档,这应该是完全有效的(对吗?) – 但事件处理程序永远不会触发。 当然,我已经确认jQuery 1.7已经加载并正在运行等。错误日志中没有错误。 我究竟做错了什么? 谢谢!