Questions tagged «javascript»

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

3
JavaScript替换/正则表达式
给定此功能: function Repeater(template) { var repeater = { markup: template, replace: function(pattern, value) { this.markup = this.markup.replace(pattern, value); } }; return repeater; }; 如何在this.markup.replace()全球范围内进行替换?这是问题所在。如果我这样使用它: alert(new Repeater("$TEST_ONE $TEST_ONE").replace("$TEST_ONE", "foobar").markup); 警报的值为“ foobar $ TEST_ONE”。 如果更改Repeater为以下内容,则Chrome中的任何内容都无法替换: function Repeater(template) { var repeater = { markup: template, replace: function(pattern, value) { this.markup = this.markup.replace(new RegExp(pattern, …

9
如何清除/删除Knockout.js中的可观察绑定?
我正在将功能构建到用户可以执行多次的网页上。通过用户的操作,使用ko.applyBindings()创建对象/模型并将其应用于HTML。 数据绑定的HTML是通过jQuery模板创建的。 到目前为止,一切都很好。 当我通过创建第二个对象/模型并调用ko.applyBindings()重复此步骤时,遇到两个问题: 标记显示先前的对象/模型以及新的对象/模型。 尽管对象/模型中的属性之一仍在标记中呈现,但仍会发生JavaScript错误。 为了解决这个问题,在第一遍之后,我调用jQuery的.empty()来删除包含所有数据绑定属性的模板化HTML,以使其不再存在于DOM中。当用户开始第二遍的处理时,将数据绑定的HTML重新添加到DOM。 但是就像我说的那样,当HTML重新添加到DOM并重新绑定到新的对象/模型时,它仍然包含来自第一个对象/模型的数据,并且我仍然遇到未发生的JS错误。在第一遍。 结论似乎是,即使从DOM中删除了标记,淘汰赛仍保留了这些绑定属性。 因此,我正在寻找一种从淘汰赛中删除这些绑定属性的方法。告诉淘汰赛,不再有可观察的模型。有没有办法做到这一点? 编辑 基本过程是用户上传文件;然后服务器使用JSON对象进行响应,将数据绑定的HTML添加到DOM,然后使用以下方法将该JSON对象模型绑定到该HTML mn.AccountCreationModel = new AccountViewModel(jsonData.Account); ko.applyBindings(mn.AccountCreationModel); 用户在模型上进行了一些选择后,将同一对象发布回服务器,从DOM中删除了数据绑定的HTML,然后得到了以下JS mn.AccountCreationModel = null; 当用户希望再次执行此操作时,将重复所有这些步骤。 恐怕代码太“涉及”以至于无法进行jsFiddle演示。



7
Ajax,后退按钮和DOM更新
如果javascript修改了页面A中的DOM,则用户导航到页面B,然后单击返回按钮以返回到页面A。对页面A的DOM的所有修改都将丢失,并且向用户显示最初从服务器检索到的版本。 它可以在stackoverflow,reddit和许多其他流行的网站上以这种方式工作。(尝试向该问题添加测试评论,然后导航至其他页面并单击“返回”按钮以返回-您的评论将“消失”) 这很有道理,但是某些网站(apple.com,basecamphq.com等)以某种方式迫使浏览器向用户提供页面的最新状态。(转到http://www.apple.com/ca/search/?q=ipod,单击顶部的“说下载”链接,然后单击“后退”按钮-所有DOM更新将被保留) 不一致来自何处?
113 javascript  ajax  firefox 


8
Comet和jQuery [关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我已经对使用javascript的服务器推送进行了一些研究,发现普遍的共识是,我要寻找的是“ Comet”设计模式。是否在jQuery之上构建了该模式的任何良好实现?如果没有,那么该模式是否有任何好的实现?而且,无论这些问题的答案是什么,从实现的角度来看,是否有关于此模式的文档?

7
AngularJS指令限制A与E
我正在一个小团队中工作,使用AngularJS进行构建,并试图维护一些基本标准和最佳实践。特别是考虑到我们相对较新的Angular。 我的问题是关于指令的。更准确地说,是restrict选项。 restrict: 'E'因此,我们中的某些人<my-directive></my-directive>在html 中使用了它。 别人都在用restrict: 'A',并具有<div my-directive></div>在html。 然后,当然可以使用restrict: 'EA'以上两种方法之一。 目前,这没什么大不了的,尽管当这个项目达到预期的规模时,我希望任何人都可以轻松地了解正在发生的事情。 属性或元素的处理方式是否有利弊? 如果在属性上选择说元素,我们应该知道哪些陷阱?

20
jQuery UI-在外部单击时关闭对话框
我有一个jQuery UI对话框,当单击特定元素时会显示该对话框。如果在那些触发元素或对话框本身之外的任何地方都发生了单击,我想关闭对话框。 这是打开对话框的代码: $(document).ready(function() { var $field_hint = $('<div></div>') .dialog({ autoOpen: false, minHeight: 50, resizable: false, width: 375 }); $('.hint').click(function() { var $hint = $(this); $field_hint.html($hint.html()); $field_hint.dialog('option', 'position', [162, $hint.offset().top + 25]); $field_hint.dialog('option', 'title', $hint.siblings('label').html()); $field_hint.dialog('open'); }); /*$(document).click(function() { $field_hint.dialog('close'); });*/ }); 如果我取消最后一部分的注释,该对话框将永远不会打开。我认为这是因为打开对话框的同一点击再次将其关闭。 最后的工作代码 注意:这是使用jQuery外部事件插件 $(document).ready(function() { // dialog element …

20
如何调试JavaScript代码?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 改善这个问题 当我发现自己的代码段有问题时,应该如何进行调试?


10
node.js shell命令执行
我仍在尝试掌握如何运行linux或Windows shell命令并在node.js中捕获输出的细节。最终,我想做这样的事情... //pseudocode output = run_command(cmd, args) 重要的一点是output全局范围内的变量(或对象)必须可用。我尝试了以下功能,但是由于某种原因,我被undefined打印到控制台了。 function run_cmd(cmd, args, cb) { var spawn = require('child_process').spawn var child = spawn(cmd, args); var me = this; child.stdout.on('data', function(me, data) { cb(me, data); }); } foo = new run_cmd('dir', ['/B'], function (me, data){me.stdout=data;}); console.log(foo.stdout); // yields "undefined" <------ 我很难理解代码在哪里突破了...该模型的非常简单的原型可以工作... function try_this(cmd, …

8
如何在AngularJs中使用ng-repeat过滤(键,值)?
我正在尝试做类似的事情: <div ng-controller="TestCtrl"> <div ng-repeat="(k,v) in items | filter:hasSecurityId"> {{k}} {{v.pos}} </div> </div> AngularJs部分: function TestCtrl($scope) { $scope.items = { 'A2F0C7':{'secId':'12345', 'pos':'a20'}, 'C8B3D1':{'pos':'b10'} }; $scope.hasSecurityId = function(k,v) { return v.hasOwnProperty('secId'); } } 但是不知何故,它向我展示了所有物品。如何筛选(键,值)?

1
透明背景与three.js
代码可以工作,但是我在使用three.js为画布设置透明背景时遇到了问题。我用: Background.renderer.setClearColor(0xffffff, 0); 但随后背景变黑。如何将其更改为透明的? 代码: var camera, scene, renderer; var mouseX = 0, mouseY = 0; var p; var windowHalfX = site.Width / 2; var windowHalfY = site.Height / 2; Background.camera = new THREE.PerspectiveCamera( 35, site.Width / site.Height, 1, 2000 ); Background.camera.position.z = 300; //camera.position.y = 200; // scene Background.scene …

11
设置自定义HTML5必填字段验证消息
必填字段自定义验证 我有很多输入字段的一种形式。我已经进行了html5验证 <input type="text" name="topicName" id="topicName" required /> 当我提交表单而不填写此文本框时,它显示默认消息,例如 "Please fill out this field" 有人可以帮我编辑此消息吗? 我有一个JavaScript代码对其进行编辑,但无法正常工作 $(document).ready(function() { var elements = document.getElementsByName("topicName"); for (var i = 0; i < elements.length; i++) { elements[i].oninvalid = function(e) { e.target.setCustomValidity(""); if (!e.target.validity.valid) { e.target.setCustomValidity("Please enter Room Topic Title"); } }; elements[i].oninput = function(e) …
113 javascript  jquery  html 

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.