Tag: javascript

为什么我可以在keydown上阻止默认事件但不能在使用Javascript的keyup上阻止?

使用.keydown我可以捕获keydown事件,然后检查并阻止默认操作(显示字符)。 使用.keyup我不能? 我知道事件被捕获为alert()当代码在条件内时触发但preventDefault()不会阻止该操作。 这是一个完整的DEMO

如何检查div元素是否为空

可能重复: 使用jQuery检查html元素是否为空 我有一个像这样的空div: 我需要检查它是否为空。 如果它是空的,则需要返回true,然后返回一些 元素被添加。 如果不是,则返回false并执行其他一些function。 什么是检查是否有的最佳方法 div中的元素? 谢谢

Bootstrap-select on click get clicked value

我正在使用jQuery插件: bootstrap-select.js我的HTML是select(multiple) – >选项。 当用户选择或取消选择该选项时,我想获取当前单击的选项值。 示例 :用户选择项目4 = console.log项目4.然后用户还选择项目2 = console.log项目2.目前我正在获取项目4,项目2 …它们总是在数组中而不是个体。 我的最终目标是根据用户选择的内容显示和隐藏页面上的div。 将有多个选择选项字段。 HTML代码: 2″> Item 1 Item 2 Item 3 Item 4 Item 5 Item 6 JS代码: $(“select#team”).on(“change”, function(value){ var This = $(this); var selectedD = $(this).val(); console.log(selectedD); }); 当前输出: [“item 1”, “item 3”, “item 4”, “item 5”] 插件站点: bootstrap-select

使用Sails.js进行个性化聊天

有没有办法在sails.js或教程中帮助我建立一个对等聊天,使用套接字,比如pubnub。 我正在尝试使用sails.js实现个性化聊天function。这意味着我在我的应用程序中说了多个用户,用户可以与其他用户聊天。 因此,如果用户A在用户B聊天框中发送消息,则B(仅)接收,反之亦然。 我已经浏览了http://sailsjs.org/#!documentation/sockets ,它的文档提供了使用模型的示例。 所以我想这不是一对一的聊天,而是像用户列表和用户配置文件这样的东西改变了一些东西。 所以我知道我需要使用本机socket.io代码。 我需要的是客户端可以为特定通道打开一个套接字,然后每当用户A键入用户B时,该消息就存储在数据库中,并写在套接字上。 我不知道如何在Sails中获得此function。 我可以在MessagesController的index事件中编写代码。 因此,我需要根据用户A和用户B的详细信息计算通道名称,并将其写入该通道的套接字。 但我不知道如何将它写入该特定通道的套接字。 我希望我能清楚自己想要什么。 我发现这段代码是一个例子: //Code For Server var io = require(“socket.io”); io.sockets.on(“connection”, function (sock) { sock.emit(“welcomeMessage”, { hello: “world” }); } io.listen(80); //Code For Client var sock = io.connect(‘http://localhost’); sock.on(‘welcomeMessage’, function (json) { //Handle Event Received }); 但它没有告诉我,如何从我想要的任何控制器中为通道“welcomeMessage”写入此特定套接字。 像PubNub支持的东西( http://www.pubnub.com/ )。

OR运算(||)与inArray()的性能

假设您要检查用户在表单字段中输入的输入字符串。 对于可能的值列表,哪一个是检查此输入的最快方法? 以下示例使用jQuery 。 第一种方法:使用|| if (input == “firstValue” || input == “secondValue” || … ) { … } 第二种方法:使用inArray() if ($.inArray(input, array) >= 0) { … } 这两种方法之间是否存在显着差异?

将选中的项目保留在列表顶部

我正在尝试创建一个清单,将检查的项目排序到列表顶部,当取消选中某个项目时,它将移动到选中的项目下方。 除了选中/未选中的排序,项目应保持其原始顺序,无论它们签入的顺序如何。 换句话说,五个项目列表应始终如下所示: *两个 *三 一 四 五 不是这个: *三 *二 一 四 五 我已经看到了如何将点击的项目移动到列表中的特定位置的示例,但没有考虑到列表中其他项目的状态。 理想情况下,我也希望为过渡做好准备。 另外,有没有办法记住多个页面上的已检查状态? 这是我开始使用的HTML: One Two Three Four Five

内联函数调用有什么好处?

我看到了这段代码(显然它是在jQuery中,有修改) (function(window,undefined){ var jQuery=(function(){ var jQuery=something; jQuery.xxx=xxx; //… return jQuery; })(); //… window.jQuery=window.$=jQuery; })(window); 虽然我理解在内联函数调用中包装代码可以清楚地定义变量范围,但我不明白它的好处 使用参数传递window而不是直接使用它, 通过未定义的参数获取undefined的实例,以及 通过另一个内联函数调用的返回值定义jQuery 。 有人可以解释一下吗? 编辑更清楚地写#3: 我的理解是代码在另一个函数中定义jQuery然后返回它。 //(function(window,undefined){ var jQuery=(function(){ // Inside this function defines jQuery and return it? var jQuery=function(selector,context){ return new jQuery(selector,context); //simplified }; jQuery.xxx=xxx; //… return jQuery; })(); // This executes the inline function and assign `jQuery` […]

jQuery解析HTML而不加载图像

我从其他页面加载HTML以从该页面中提取和显示数据: $.get(‘http://example.org/205.html’, function (html) { console.log( $(html).find(‘#c1034’) ); }); 这确实有效,但由于$(html)我的浏览器尝试加载205.html中链接的图像。 我的域上不存在这些图像,因此我收到了很多404错误。 有没有办法解析页面,如$(html)但没有将整个页面加载到我的浏览器?

从Dynatable加载远程JSON

更新:为了避免问题完全归结为相同的原始策略,我尝试在本地提供服务,其中所有资产都来自http://localhost:4000使用Serve 。 它没有解决问题。 因此,由于相同的原始策略,编辑小提琴可能不起作用,但您可以在那里看到代码。 我正在尝试使用Dynatable加载外部JSON,跳过read / normalize步骤(从现有表生成JSON)。 这应该得到支持,但它对我不起作用。 这是我对JSFiddle的尝试 。 从文档中加载JSON(这对我来说似乎并不十分有用)工作正常,如小提琴中所见。 但是从URL中提取它根本不起作用。 这是我的JavaScript: // getting JSON from the document works, but of what use is that? $(document).ready( function() { $(‘#local’).dynatable({ dataset: { records: JSON.parse($(‘#music’).text()) } }); // getting JSON from a remote source fails: $(‘#remote’).dynatable({ dataset: { ajax: true, ajaxOnLoad: true, ajaxUrl: ‘//www.dynatable.com/dynatable-ajax.json’, records: [] […]

使用jQuery Ajax获取另一个页面div的内容

我想page.html to ajax-request side.html的内容并提取其两个div的内容。 但是我无法找到解析响应的正确方法,尽管我尝试了一切。 这是side.html: Useless ContentA ContentB 这是page.html Useless Hello jQuery.ajax({ url: “side.html”, success: function(result) { html = jQuery(result); alert(html.find(“div#a”).attr(“id”)); alert(html.find(“div#a”).html()); alert(html.find(“div#a”)); }, }); 当我访问这个页面时,我没有得到任何错误,并且三个alert()s产生undefined,undefined和[object Object]。 我究竟做错了什么? 示例就在这里 。