Questions tagged «javascript»

有关在ECMAScript(JavaScript / JS)及其各种方言/实现(不包括ActionScript)中进行编程的问题。此标记很少单独使用,但最常与标记[node.js],[jquery],[json]和[html]关联。

5
为什么定义一个匿名函数并将jQuery作为参数传递给它?
我正在看ribs.js截屏视频中出色的peepcode演示代码。在其中,主干代码全部封装在传递给jQuery对象的匿名函数中: (function($) { // Backbone code in here })(jQuery); 在我自己的主干代码中,我将所有代码包装在jQuery DOM'ready'事件中: $(function(){ // Backbone code in here }); 第一种方法的目的/优势是什么?这样做会创建一个匿名函数,然后将其作为传递给函数参数的jQuery对象立即执行,从而有效地确保$是jQuery对象。这是唯一的观点-保证jQuery绑定到“ $”还是有其他原因呢?


12
固定元素获得焦点时,ios8中的Safari正在滚动屏幕
在IOS8 Safari中,有一个已修复位置错误的新错误。 如果您将焦点放在固定面板中的文本区域,则safari会将您滚动到页面底部。 这使各种UI都无法使用,因为您无法将文本一直输入到textareas中,而无需一直向下滚动页面并失去位置。 有什么办法可以彻底解决此错误? #a { height: 10000px; background: linear-gradient(red, blue); } #b { position: fixed; bottom: 20px; left: 10%; width: 100%; height: 300px; } textarea { width: 80%; height: 300px; } <html> <body> <div id="a"></div> <div id="b"><textarea></textarea></div> </body> </html>
96 javascript  ios  css  safari  ios8 

1
使用Ruby on Rails,Webpack和React JS在Chrome中将源地图缩小一行
我遇到一个问题,inline-source-map当我使用Chrome devtools调试器时,使用配置设置由Webpack生成的源地图关闭了一行。Webpack是在Ruby on Rails应用程序中设置的,以生成由几十个模块组成的串联的,最小化的JavaScript文件。这些模块中的大多数是ReactJS组件,由jsx加载器进行解析。然后,Webpack的输出application.js与gems生成的其他一些JavaScript库一起包含在文件中。 当我使用时eval-source-map,没有问题。关于使用use的某些事情inline-source-map会使行号被一甩掉。 检查不是React组件的JavaScript仍然存在此问题,因此我认为它与jsx的使用无关。

6
阻止表单重定向还是在提交时刷新?
我搜索了一堆页面,但是找不到我的问题,所以我不得不发表一个帖子。 我有一个带有提交按钮的表单,提交后我不希望它刷新或重定向。我只希望jQuery执行功能。 形式如下: <form id="contactForm"> <fieldset> <label for="Name">Name</label> <input id="contactName" type="text" /> </fieldset> <fieldset> <label for="Email">Email</label> <input id="contactEmail" type="text" /> </fieldset> <fieldset class="noHeight"> <textarea id="contactMessage" cols="20"></textarea> <input id="contactSend" class="submit" type="submit" onclick="sendContactForm()" /> </fieldset> </form> <small id="messageSent">Your message has been sent.</small> 这是jQuery: function sendContactForm(){ $("#messageSent").slideDown("slow"); setTimeout('$("#messageSent").slideUp();$("#contactForm").slideUp("slow")', 2000); } 我尝试过在表单上包含和不包含action元素,但是不知道我在做什么错。更让我烦恼的是,我有一个完美的例子: 示例页面 如果您想实时查看我的问题,请转到stormink.net(我的网站),并在侧边栏显示“向我发送电子邮件”和“ …

4
React.js中的setState与replaceState
我是React.js库的新手,我正在浏览一些教程,发现了: this.setState this.replaceState 给出的说明不是很清楚(IMO)。 setState is done to 'set' the state of a value, even if its already set in the 'getInitialState' function. 同样, The replaceState() method is for when you want to clear out the values already in state, and add new ones. 我先尝试this.setState({data: someArray});然后this.replaceState({test: someArray});再进行console.logging它们,发现state现在同时具有data和test。 然后,我尝试this.setState({data: someArray});依次输入“ this.setState({test: …

16
Node.js / Express.js应用仅在端口3000上运行
我在服务器上运行了一个Node.js / Express.js应用程序,该应用程序仅在端口3000上运行,我试图找出原因。这是我发现的: 如果不指定端口(app.listen()),则该应用会运行,但不会加载网页。 在端口3001(app.listen(3001))或任何其他未使用的端口上,应用程序运行,但网页未加载。 在端口2999上,该应用程序引发错误,因为其他人正在使用该端口。 在端口3000上,该应用程序运行,并且网页加载正常。 我知道Express应用程序默认使用端口3000。但是奇怪的是,我的应用程序仅在我明确使它运行在端口3000(app.listen(3000))上时运行。 我在第220行找到了这个/usr/bin/express: app.set(\'port\', process.env.PORT || 3000); 如前所述:将端口设置为指定的端口,如果未指定则设置为3000。 如何使我的应用程序在其他端口(例如8080或3001)上工作? 谢谢! 编辑:代码示例(非常简单的节点/ Express应用程序) var express = require("express"); var app = express(); app.get('/', function(req, res){ res.send('hello world'); }); // Only works on 3000 regardless of what I set environment port to or how I set [value] …

2
有没有将JavaScript对象附加到HTML元素的好方法?
我想将JavaScript对象与HTML元素相关联。有没有简单的方法可以做到这一点? 我注意到HTML DOM定义了setAttribute方法,它看起来像是为任意属性名称定义的。但是,这只能设置字符串值。(您当然可以使用它来将密钥存储到字典中。) 细节(尽管我对一般问题最感兴趣): 具体来说,我有HTML元素表示一棵树中的节点,并且试图启用拖放功能,但是jQuery drop事件只会让我拖放元素。 向事件处理程序获取信息的正常模式似乎是在创建JavaScript对象的同时创建HTML元素,然后通过关闭这些JavaScript对象来定义事件处理程序-但这在此方面效果不佳情况(我可能有一个全局对象,当拖动开始时会填充它……但是感觉有点讨厌)。
96 javascript  dom 

11
如何在iPhone上的方向更改时重置Web应用程序的缩放/缩放?
当我以纵向模式启动我的应用程序时,它可以正常工作。然后我旋转到风景中,并按比例放大。要使其在横向模式下正确缩放,我必须双击两次,首先将其完全放大(正常的双击行为),然后再次将其完全缩小(再次是正常的双击行为) 。缩小时,它会放大到横向模式的正确新比例。 切换回纵向似乎更一致。也就是说,它会处理缩放,以便在方向变回纵向时缩放比例正确。 我想弄清楚这是否是错误?还是这可以用JavaScript修复? 使用视口元内容,我将初始比例设置为1.0,而不是设置最小或最大比例(我也不想要)。我将宽度设置为设备宽度。 有任何想法吗?我知道很多人将不胜感激,因为这似乎是一个长期存在的问题,因此将有一个解决方案。



6
在javascript /浏览器中缓存jquery ajax响应
我想在javascript /浏览器中启用ajax响应的缓存。 从jquery.ajax docs: 默认情况下,始终发出请求,但浏览器可能会在其缓存之外提供结果。要禁止使用缓存的结果,请将cache设置为false。如果自上次请求以来未修改资产,则要导致请求报告失败,请将ifModified设置为true。 但是,这些地址都没有强制缓存。 动机: 我想$.ajax({...})在我的初始化函数中放入调用,其中一些请求相同的URL。有时我需要调用这些初始化函数之一,有时我调用多个初始化函数。 因此,如果该特定的URL已经加载,我想最小化对服务器的请求。 我可以推出自己的解决方案(有些困难!),但是我想知道是否有标准的方法可以做到这一点。

23
禁用将文本粘贴到HTML表单中
有没有一种方法可以使用JavaScript禁用将文本粘贴到HTML表单上的文本字段的功能? 例如,我有一个简单的注册表格,要求用户输入两次电子邮件。第二个电子邮件条目是为了验证第一个电子邮件条目中没有错别字。但是,如果用户复制/粘贴他们的电子邮件,那将无法达到目的,并且我一直在遇到用户的问题,因为他们输入了错误的电子邮件并复制/粘贴了它。 也许我不清楚我的问题,但我并没有试图阻止人们在他们的浏览器中复制(或拖动选择)文本。我只是想阻止他们将输入粘贴到文本字段中,以最大程度地减少用户错误。 也许您可以使用另一种解决方案来解决我要在此处解决的核心问题,而不是使用此“ hack”?我已经完成了不到六个用户测试,而且已经发生了两次。我的听众没有很高的计算机水平。

8
如何在Ajax加载的内容上绑定事件?
我有一个链接,该链接myLink应该将AJAX加载的内容插入到divHTML页面的(appendContainer)中。问题是click我绑定到jQuery 的事件没有在插入到appendedContainer中的新加载的内容上执行。该click事件绑定到未随我的AJAX函数加载的DOM元素上。 我必须更改什么才能绑定事件? 我的HTML: <a class="LoadFromAjax" href="someurl">Load Ajax</a> <div class="appendedContainer"></div> 我的JavaScript: $(".LoadFromAjax").on("click", function(event) { event.preventDefault(); var url = $(this).attr("href"), appendedContainer = $(".appendedContainer"); $.ajax({ url: url, type : 'get', complete : function( qXHR, textStatus ) { if (textStatus === 'success') { var data = qXHR.responseText appendedContainer.hide(); appendedContainer.append(data); appendedContainer.fadeIn(); } } }); …

14
JavaScript:如何按值传递对象?
当将对象作为参数传递时,JavaScript通过引用传递它们,这使得创建对象的本地副本变得困难。 var o = {}; (function(x){ var obj = x; obj.foo = 'foo'; obj.bar = 'bar'; })(o) o将有.foo和.bar。 可以通过克隆解决此问题。简单的例子: var o = {}; function Clone(x) { for(p in x) this[p] = (typeof(x[p]) == 'object')? new Clone(x[p]) : x[p]; } (function(x){ var obj = new Clone(x); obj.foo = 'foo'; obj.bar = …
96 javascript 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.