Questions tagged «javascript»

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

3
使用jQuery的ajax方法将图像检索为斑点
我最近问了另一个(相关的)问题,这导致了后续问题: 为输入表单提交数据而不是文件 阅读jQuery.ajax()文档(http://api.jquery.com/jQuery.ajax/),似乎可接受的dataTypes列表不包含图像。 我正在尝试使用jQuery.get(或必要时使用jQuery.ajax)来检索图像,将此图像存储在Blob中,然后在POST请求中将其上传到另一台服务器。当前,由于数据类型不匹配,我的图像最终被损坏(字节大小不匹配等)。 执行此操作的代码如下(它在coffeescript中,但应该不难解析): handler = (data,status) -> fd = new FormData fd.append("file", new Blob([data], { "type" : "image/png" })) jQuery.ajax { url: target_url, data: fd, processData: false, contentType: "multipart/form-data", type: "POST", complete: (xhr,status) -> console.log xhr.status console.log xhr.statusCode console.log xhr.responseText } jQuery.get(image_source_url, null, handler) 我如何检索此图像作为斑点?

6
检测外部点击元素(香草JavaScript)
我到处都在寻找一个好的解决方案,但是找不到不使用jQuery的解决方案。 是否有一种跨浏览器的常规方法(没有怪异的hack或容易破解的代码)来检测元素外部的单击(可能没有子元素)?
84 javascript 

8
如何确定div是否滚动到底部?
在不使用jQuery或任何其他JavaScript库的情况下,如何确定带有垂直滚动条的div是否一直滚动到底部? 我的问题不是如何滚动到底部。我知道该怎么做。我想确定div是否已滚动到底部。 这不起作用: if (objDiv.scrollTop == objDiv.scrollHeight)

3
未捕获的ReferenceError:函数未使用onclick定义
我正在尝试为网站添加自定义表情的用户脚本。但是,我遇到了很多错误。 这是函数: function saveEmotes() { removeLineBreaks(); EmoteNameLines = EmoteName.value.split("\n"); EmoteURLLines = EmoteURL.value.split("\n"); EmoteUsageLines = EmoteUsage.value.split("\n"); if (EmoteNameLines.length == EmoteURLLines.length && EmoteURLLines.length == EmoteUsageLines.length) { for (i = 0; i < EmoteURLLines.length; i++) { if (checkIMG(EmoteURLLines[i])) { localStorage.setItem("nameEmotes", JSON.stringify(EmoteNameLines)); localStorage.setItem("urlEmotes", JSON.stringify(EmoteURLLines)); localStorage.setItem("usageEmotes", JSON.stringify(EmoteUsageLines)); if (i == 0) { console.log(resetSlot()); } emoteTab[2].innerHTML …

9
有没有办法将背景图像设置为base64编码图像?
我想在JS中动态更改背景,并且我的图像集采用base64编码。我尝试: document.getElementById("bg_image").style.backgroundImage = "url('http://amigo.com/300107-2853.jpg')"; 结果完美 但我无法通过以下方式执行相同操作: document.getElementById("bg_image").style.backgroundImage = "url('data:image/png;base64,iVBORw0KGgoAAAAAAAAyCAYAAAAUYybjAAAgAElE...')"; 也不 document.getElementById("bg_image").style.backgroundImage = "data:image/png;base64,iVBORw0KGgoAAAAAAAAyCAYAAAAUYybjAAAgAElE..."; 有什么办法吗?

5
类型变量的Typescript空对象
说我有: type User = { ... } 我想创建一个新的user但将其设置为空对象: const user: User = {}; // This fails saying property XX is missing const user: User = {} as any; // This works but I don't want to use any 我该怎么做呢?我不希望变量为null。

8
如何在React.js中禁用按钮
我有这个组成部分: import React from 'react'; export default class AddItem extends React.Component { add() { this.props.onButtonClick(this.input.value); this.input.value = ''; } render() { return ( <div className="add-item"> <input type="text" className="add-item__input" ref={(input) => this.input = input} placeholder={this.props.placeholder} /> <button disabled={!this.input.value} className="add-item__button" onClick={this.add.bind(this)}>Add</button> </div> ); } } 我希望在输入值为空时禁用按钮。但是上面的代码不起作用。它说: add-item.component.js:78未捕获的TypeError:无法读取未定义的属性“值” 指向disabled={!this.input.value}。我在这里怎么做错了?我猜测render执行方法时可能尚未创建ref 。如果是,那么解决方法是什么?

7
输入元素上的JavaScript更改事件仅在失去焦点时触发
我有一个输入元素,我想继续检查内容的长度,每当长度等于特定大小时,我都希望启用提交按钮,但是我遇到了Java的onchange事件作为事件的问题仅在输入元素超出范围时触发,而在内容更改时不触发。 <input type="text" id="name" onchange="checkLength(this.value)" /> ---- onchange不会在更改名称内容时触发,而仅在名称失去焦点时才触发。 我可以做些什么来使此事件在内容更改上起作用吗?或其他可以用于此目的的事件?我通过使用onkeyup函数找到了一种解决方法,但是当我们从浏览器的自动完成器中选择某些内容时,这种方法不会触发。 我希望在通过键盘或鼠标更改字段内容时可以使用的东西……有什么想法吗?

5
如何在ReactJS中使用JQuery
我是ReactJS的新手。以前,我使用jQuery设置所需的任何动画或功能。但是现在我正在尝试使用ReactJS并尽量减少使用jQuery。 我的情况是: 我正在尝试使用ReactJS构建手风琴。 <div class="accor"> <div class="head">Head 1</div> <div class="body hide">Body 1</div> </div> <div class="accor"> <div class="head">Head 1</div> <div class="body hide">Body 1</div> </div> <div class="accor"> <div class="head">Head 1</div> <div class="body hide">Body 1</div> </div> 使用JQuery: $('.accor > .head').on('click', function(){ $('.accor > .body').slideUp(); $(this).next().slideDown(); }); 我的问题: 我该如何使用ReactJS?


2
角JS过滤器不等于
似乎是一个非常基本的问题,但我无法正确使用语法。 <li class="list-group-item" ng-repeat="question in newSection.Questions | filter:Id != '-1'; " ng-mouseenter="hover = true" ng-mouseleave="hover = false"> <div href="#" editable-text="question.Text">{{question.Text}}</div> </li> 我想要的是显示id不是-1的所有问题。我究竟做错了什么。谢谢!

3
跨多个元素的Angular.js ng-repeat
此问题已在此处部分解决:跨多个tr的Angular.js ng-repeat 但是,这实际上只是一种变通方法,它实际上并未解决核心问题,即:如何在没有包装的情况下跨多个元素使用ng-repeat? 例如,jquery.accordion要求您重复一个h3和div元素,用ng-repeat怎么做?

5
Google Maps Api v3-getBounds未定义
我从v2切换到v3 google maps api,gMap.getBounds()功能出现问题。 初始化后,我需要获取地图的边界。 这是我的JavaScript代码: var gMap; $(document).ready( function() { var latlng = new google.maps.LatLng(55.755327, 37.622166); var myOptions = { zoom: 12, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; gMap = new google.maps.Map(document.getElementById("GoogleMapControl"), myOptions); alert(gMap.getBounds()); } ); 所以现在它提醒我gMap.getBounds()未定义。 我尝试在click事件中获取getBounds值,它对我来说很好,但是在加载映射事件中我无法获得相同的结果。 在Google Maps API v2中加载文档时,getBounds也可以正常工作,但在V3中失败。 您能帮我解决这个问题吗?

7
Backbone.js:重新填充还是重新创建视图?
在我的Web应用程序中,我在左侧的表格中有一个用户列表,在右侧的用户详细信息窗格中。管理员单击表中的用户时,其详细信息应显示在右侧。 我在左侧有一个UserListView和UserRowView,在右侧有一个UserDetailView。事情工作正常,但我的行为很奇怪。如果我单击左侧的一些用户,然后在其中之一上单击“删除”,则将为显示的所有用户连续显示javascript确认框。 似乎所有先前显示的视图的事件绑定都没有被删除,这似乎很正常。我不应该每次在UserRowView上都做一个新的UserDetailView吗?我应该维护视图并更改其参考模型吗?我应该跟踪当前视图并在创建新视图之前将其删除吗?我有点迷茫,任何想法都会受到欢迎。谢谢 ! 这是左视图的代码(行显示,单击事件,右视图创建) window.UserRowView = Backbone.View.extend({ tagName : "tr", events : { "click" : "click", }, render : function() { $(this.el).html(ich.bbViewUserTr(this.model.toJSON())); return this; }, click : function() { var view = new UserDetailView({model:this.model}) view.render() } }) 以及用于右视图的代码(删除按钮) window.UserDetailView = Backbone.View.extend({ el : $("#bbBoxUserDetail"), events : { "click .delete" …

4
在Angular.js中实现承诺时如何始终运行一些代码
在我的Angular.js应用程序中,我正在运行一些异步操作。在开始之前,我先使用模式div覆盖应用程序,然后在操作完成后,无论操作是否成功,都需要删除div。 目前我有这个: LoadingOverlay.start(); Auth.initialize().then(function() { LoadingOverlay.stop(); }, function() { LoadingOverlay.stop(); // Code needs to be duplicated here }) 它运作良好,但是我更喜欢这样的伪代码: LoadingOverlay.start(); Auth.initialize().finally(function() { // *pseudo-code* - some function that is always executed on both failure and success. LoadingOverlay.stop(); }) 我认为这是一个很普遍的问题,所以我想可以做到,但是在文档中找不到任何东西。知道是否可以做到吗?

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.