小编beN*_*erd的帖子

如何获取 onClick() 的事件对象

我有一个循环,它使用 jquery 生成大量输入文本字段。现在,当有人单击这些输入标签时,我想触发 stopPropagation 方法。我认为这个方法的工作原理是这样的:

event.stopPropagation()
Run Code Online (Sandbox Code Playgroud)

但问题是我想在输入标签的 onClick 属性上触发此方法。像这样:

$(handler).html('<input type="text" value="'+text+'" style="width:280px;" onClick=stopPropagation(); />');
Run Code Online (Sandbox Code Playgroud)

由于显而易见的原因,这不会起作用。我需要获取这次点击的事件对象。什么是更聪明的方法?

jquery

4
推荐指数
1
解决办法
6431
查看次数

检查backbonejs中的集合是否为空

我正在开发一个带有requirejs和backbonejs的单页应用程序,它涉及从db表中提取记录并显示它们.我点击一个按钮就可以了.我想我不必在点击按钮时反复从服务器中获取模型.

我想要的是,一旦我获取它上面的集合模型不应该再次点击按钮获取.我在收集时做的任何修改/添加都是通过服务器验证的,所以我将能够保留最新的列表,而无需在该按钮点击时从服务器再次获取所有模型.

所以我需要在获取模型之前检查集合是否为空.这样的事情:

if(window.invoices.isEmpty())
            {
                window.invoices.fetch({success:function(model){
                model.each(self.addOne,self);
                }});
            }
            else
            {
                window.invoices.each(self.addOne,self);
            }   
Run Code Online (Sandbox Code Playgroud)

如果我在这里出现根本错误,请详细说明.

jquery backbone.js underscore.js

4
推荐指数
1
解决办法
7129
查看次数

过滤backbone.js中集合中的最大值

我有一组具有结构的模型:

{ "名": "XYZ", "公司": "ABC", "recNumber": "M34/14-15/23"}

我需要从这个rec​​Number最高的集合中获取该特定模型(基于最后一次斜杠后的数字).我想可以用下划线的.filter完成,但不知道在这种情况下确切的构造是什么.

backbone.js underscore.js

3
推荐指数
1
解决办法
3368
查看次数

使用 expressjs 发布到远程 url

我的 server.js 中有这个

app.post("/leadAPI/ed",function(request,response){
//api post code here
});
Run Code Online (Sandbox Code Playgroud)

在此发布请求中,我需要将包含在请求正文中的数据发布到具有特定 URL 的某些外部 API,并使用 response.send 将响应发回。如何以干净的方式做到这一点。在 expressjs 中有什么内置的吗?

node.js express backbone.js

3
推荐指数
2
解决办法
7813
查看次数

在Firefox中不起作用的dragenter,dragover和drop事件

我的js文件中有以下代码

window.onload = function () {

    var canvas = document.getElementById('canvas');
    canvas.addEventListener('dragover', drag_over, false);
    canvas.addEventListener('dragenter', drag_over, false);
    canvas.addEventListener('drop', dropped, false);
}
Run Code Online (Sandbox Code Playgroud)

在某些时候,我创建了一个像这样的可拖动元素

element.addEventListener('dragstart', dragstart, false);
Run Code Online (Sandbox Code Playgroud)

我有这样的回调:

function dragstart(e) {
    console.log("dragstart");
}

function dropped(e) {
    console.log("dropped");
 }
function drag_over(e) {
    console.log("dragover");
    e.preventDefault();
    return false;
}
Run Code Online (Sandbox Code Playgroud)

问题是代码在chrome中运行良好但在firefox中运行不正常.在firefox中,dragstart回调被触发但不是其余的.无能:(

javascript firefox html5 drag-and-drop html5-canvas

3
推荐指数
1
解决办法
9321
查看次数

javascript中变量范围的混淆

我在js中有一个函数,它填充一个全局数组,其值从服务器脚本获取为json:

function populateValues(id) {
    var values=new Array();

    $.getJSON(
        '<?PHP echo base_url();?>admin/forums/getForumById/' + id ,
        function(data){
            $.each(data,function(k,v){
                values.push(v);
            });
            alert(values[1]);
        }
    );
}
Run Code Online (Sandbox Code Playgroud)

这很好,并提醒所需的值.但是当我尝试在循环之后提醒它时,值会丢失并且我得到一个未定义的.情况如下:

function populateValues(id) {
    var values=new Array();

    $.getJSON(
        '<?PHP echo base_url();?>admin/forums/getForumById/' + id ,
        function(data){
            $.each(data,function(k,v){
                values.push(v);
            });
        }
    );
    alert(values[1]);
}
Run Code Online (Sandbox Code Playgroud)

是否由于某些闭合构造形成?还是我缺少一些基本概念?只是好奇地知道为什么即使我将数组声明为全局,也不会警告值.请说清楚.

javascript jquery

2
推荐指数
1
解决办法
80
查看次数

带参数的mongoexport + node.js +子进程

我正在尝试使用mongodb中的node.js导出csv.为此,我开始使用此代码:

app.get('/export', function(req, res) {
 var spawn = require('child_process').spawn,
 ls = spawn('mongoexport');
res.sendfile('/home/database.csv'); 
});
Run Code Online (Sandbox Code Playgroud)

这很好用.然后为了使它更有用,我尝试使用参数使用mongoexport在下面编写代码:

 app.get('/export', function(req, res) {
 var spawn = require('child_process').spawn,
 ls = spawn('mongoexport --db lms --collection databases --fields firstname,lastname,email,daytimePhone,addressOne,city,state,postalCode,areaOfStudy,currentEducationLevel,company --csv --out /home/database.csv');
res.sendfile('/home/database.csv') 

});
Run Code Online (Sandbox Code Playgroud)

这引发了一个异常:

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: spawn ENOENT
    at errnoException (child_process.js:980:11)
    at Process.ChildProcess._handle.onexit (child_process.js:771:34)
Run Code Online (Sandbox Code Playgroud)

然后我尝试只使用一个参数,但它给出了同样的错误:(

我也试过这个看看参数是否以这种方式工作但是同样的错误:

spawn('mongoexport',['--csv']);
Run Code Online (Sandbox Code Playgroud)

javascript csv mongodb node.js

2
推荐指数
1
解决办法
2524
查看次数

在node.js中的所有传入http请求上提供index.html

我有一个像这样的节点服务器:

var express = require('express');
var fs = require('fs');
var path = require('path');

var root = fs.realpathSync('.');

var app = express();
app.configure(function () {
    app.use(express.static(__dirname + '/./'));
    app.use(app.router);
});
app.get('/*', function (req, res) {
    res.sendfile(path.join(root, './index.html'))
});
/*app.get('/dashboard', function (req, res) {
    res.sendfile(path.join(root, 'index.html'))
});*/

app.listen(3000);
console.log('Listening on port 3000');
Run Code Online (Sandbox Code Playgroud)

在前端,我使用骨干路由使用HTML History API路由应用程序模块.所以它始终是格式良好的URL.刷新页面时出现问题.它在本地节点服务器中工作正常,但是当我在微软Azure上部署应用程序时,刷新会产生问题,它说,它无法找到资源.

我需要配置哪些特定于azure的内容,以使其理解它应该在新请求上提供index.html而不是查找资源?

在apache中,我们使用.htaccess这样做,但我不知道如何在天蓝云上做同样的事情!

azure node.js backbone.js

2
推荐指数
1
解决办法
1556
查看次数

node.js中的块数据记录

我在http.request()中的node.js中有以下函数

       res.on('data', function (chunk) {
    var sr="response: "+chunk;
    console.log(chunk);
    });
Run Code Online (Sandbox Code Playgroud)

我在控制台得到这个

<Buffer 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 65 6e 63 6f
 64 69 6e 67 3d 22 75 74 66 2d 38 22 20 3f 3e 3c 72 65 73 75 6c 74 3e 3c 73 75 63
 ...>
Run Code Online (Sandbox Code Playgroud)

但是当我使用它时:

res.on('data', function (chunk) {
    var sr="response: "+chunk;
    console.log(sr);
    });
Run Code Online (Sandbox Code Playgroud)

我得到一个正确的xml响应,如下所示:

responose: .....xml responose.....
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我需要附加一个字符串来输出正确的响应.第一个代码中生成的响应是什么意思?

http node.js express

1
推荐指数
1
解决办法
5375
查看次数

在猫鼬中的对象数组上使用循环保存模型。全部插入后需要回调

我需要在 mongodb 中转储一个 csv。我为此使用了节点 csv 插件。我所做的是通过循环遍历行生成了一组 json 对象。在下一步中,我计划遍历这个数组并使用 mongoose 将文档插入集合中。我这样做:

for (var i = 0; i <= dataArray.length; i++) {
    var contact = new models.contact(dataArray[i]);
    contact.save(function (err) {
        console.log(i);
        if (err) {
            console.log(err);
        }
        else {
                //some logic goes here
        }
    })
}
Run Code Online (Sandbox Code Playgroud)

只要插入是唯一的问题,这工作正常。我需要有一个回调,当所有记录都被插入时它会被触发。我看了这个,但看了第二个答案后并没有特别相信。那么,通过适当的验证在 mongodb 中转储 csv 的可接受方法是什么?

javascript csv arrays mongodb node.js

1
推荐指数
1
解决办法
2757
查看次数

单击按钮后关闭用 window.open() 打开的窗口

我这里有一个简单的案例:

我用来window.open('http://remoteserver.com/success')在浏览器中打开一个窗口,如下所示:

const win = window.open('http://remoteserver.com/success')
Run Code Online (Sandbox Code Playgroud)

现在远程服务器发送这样的 HTML:

<!DOCTYPE html>
<html lang="en">
  <body>
  <div class="row text-center" style="margin-top:50px">
    Success!
    <button type="button" class="btn btn-primary" onclick="closeWindow()">Go Back</button>
  </div>
  </body>
  <script >
  function closeWindow(e)
  {
    this.close()
    console.log(e);
  }
  </script>
</html>
Run Code Online (Sandbox Code Playgroud)

现在,当用户单击“返回”按钮时,它会显示警告,提示窗口只能由打开它的脚本关闭!

我如何关闭这样的窗口?

html javascript dom window window.open

1
推荐指数
1
解决办法
3850
查看次数