Tag: javascript

为什么可以像数组一样查询jQuery(’div’)?

我有另外一个关于jQuery架构的问题。 $(‘div’)构造一个新的jQuery对象: $(‘div’) instanceof jQuery; // true 我想知道为什么有可能像数组一样查询它,虽然它不是一个数组? $(‘div’)[0]; // returns the first div in the document as a DOM node. $.isArray($(‘div’)); // false 我只是喜欢这种语法,看起来很干净! 我还注意到这会将DOM节点作为数组返回: console.log($(‘div’)); 有人可以解释一下如何将这种行为实现到我自己的对象中吗? 我自己的方法是用这样的方法创建一个数组: var a = [‘a’, ‘b’, ‘c’]; a.method = function(){ return ‘test’; }; a; // [‘a’, ‘b’, ‘c’] a[0]; // ‘a’ a.method(); // ‘test’ 然而,这似乎不是jQuery的方式,因为这实际上是一个数组: $.isArray(a); // […]

如何知道哪个文件或脚本正在运行当前元素?

假设,我有一个滑块,其中包含一个javascript文件和我想要更改的脚本,但有多个文件包含此javascript文件。 所以现在我想知道哪个文件或脚本确实已经运行到当前元素ie slider 。 有什么方法可以知道吗?

使用jQuery fadeIn或CSS3动画更好吗?

我正在使用一些PHP和JavaScript创建一个简单的库,我正在尝试在图像之间进行淡入淡出过渡。 然后我想知道使用CSS动画之间是否存在性能差异,例如: @-webkit-keyframes fadeIn { 0% { opacity: 0; } 100% { opacity: 1; } } 和一个jQuery淡入淡出。 我想使用fadeIn的回调,但我也可以使用带有CSS的计时器。 对于大图像,这些中的任何一个都可能更好吗? 我看不出有什么不同,但想知道它是否会影响较慢的计算机。

如何生成所有可能的CSS 2选择器组合?

在具有document当前状态的上下文中为DOM元素生成所有可能的CSS 2 Selector组合的最佳方法是什么? 例如:对于以下MarkUp a b c 一个JS / jQuery方法,使得上面标记中的作为方法的参数给出,它以数组的forms返回Argument的所有可能的CSS 2选择器组合。 可以在方法中添加一个可选参数,该参数将定义CSS 2 Selector Nesting的最大深度。 如果此参数设置为false,则应返回所有可能的组合(如果设置为false,将是性能障碍者) 示例输出: [ “.last-li”, “li.last-li”, “ul .last-li”, “ul li.last-li”, “div ul .last-li”, “div ul li.last-li”, “#content ul .last-li”, “#content ul li.last-li”, “div#content ul .last-li”, “div#content ul li.last-li”, “body div ul li.last-li”, “body div ul .last-li”, “body #content ul li.last-li”, “body […]

jquery:ajax加载内容全部加载时的事件(包括图像)

我正在通过ajax加载一些html,我需要一个事件来捕获新图像加载时… 因为它在div而不是整页,我不能使用$(window).load(…. 我尝试了以下但它不起作用: $(‘.banners_col img:last’).load(function(){…..

在console.log中调用时,jQuery实例如何显示为数组?

当进入JavaScript控制台时,jQuery对象显示为数组。 但是,它仍然是jQuery对象的一个​​实例。 var j = jQuery(); => [] console.log(j); => [] console.log(‘test with string concat: ‘ + j); => test with string concat: [object Object] j instanceof Array => false j instanceof jQuery => true 怎么可以用自己的对象复制它? ———编辑——— 感谢ZER0搞清楚。 下面是一些示例代码,用于创建一个与控制台中的jQuery类似的对象: var Foo = function() { this.splice = Array.prototype.splice; Array.prototype.push.apply(this, arguments); return this; } var f = […]

在textarea中按Enter键提交值,按Shift + Enter键应转到下一行

我想要一个聊天框(textarea),如果用户按Enter键,则应提交聊天,如果用户按Shift + Enter,则应输入新行。 我尝试了一些但却无法找出确切的keyup或keydown事情。 我目前使用的代码是: $(“textarea”).keydown(function(e){ if (e.keyCode == 13 && !e.shiftKey) { e.preventDefault(); } }); 的jsfiddle 另外,我想在按下Enter + Shift键时将\n到位。 编辑 我的代码问题是: – 当我使用alert检查客户端上的内容时,它会显示下一行。 但是当我发布它时,我的轨道结束了。 然后它只是一个简单的字符串。 没有新线路的东西。 这就是我向rails服务器发送聊天的方式。 $.post(“/incomingchat”, { body:$(“#chat_” + group_id).val() }, function(data){ // do something.. });

未捕获的TypeError:无法读取undefined – chart.js的属性’offsetWidth’

我有这个简单的HTML: 这个js: var ctx = document.getElementById(“myChart”); var myChart = new Chart(ctx, { type: ‘bar’, data: { labels: [“Red”, “Blue”, “Yellow”, “Green”, “Purple”, “Orange”], datasets: [{ label: ‘# of Votes’, data: [12, 19, 3, 5, 2, 3], backgroundColor: [ ‘rgba(255, 99, 132, 0.2)’, ‘rgba(54, 162, 235, 0.2)’, ‘rgba(255, 206, 86, 0.2)’, ‘rgba(75, 192, 192, 0.2)’, ‘rgba(153, […]

如何在jquery插件中对私有方法进行unit testing?

也许这是一个新手JQuery问题但是: 正确的jquery插件写在一个闭包内 因此,只有定义插件接口的方法才能从外部访问 有时(或多次)可能需要帮助方法,因为它们作为插件接口的一部分公开是没有意义的(例如因为它们改变了内部状态)。 那些如何进行unit testing? 例如,看看blockUI插件,方法如何安装,删除,重置获得unit testing? 要在Java中绘制并行,我会: 创建一个仅包含公共方法的BlockUI接口(根据定义) 创建一个实现上述接口的BlockUIImpl类。 此类将包含install(),remove(),reset()方法,这些方法可以是公共的,或(包)受保护的 所以,我会对Impl进行unit testing,但客户端程序员会通过BlockUI接口与插件进行交互。

将本机浏览器事件对象转换为jQuery事件对象

我通过本机浏览器onclick属性为元素分配一个事件处理函数: document.getElementById(‘elmtid’).onclick = function(event) { anotherFunction(event) }; 当我在anotherFunction(event) ,我希望能够像使用jQuery中通过.on()方法获得的事件对象一样使用事件对象。 我想这样做是因为jQuery事件对象具有适用于所有浏览器的属性和方法,如.pageX , .pageY和.stopPropagation() 。 所以我的问题是,在我将本机浏览器事件对象传入anotherFunction() ,如何将其转换为jQuery事件? 我试过$(event) ,但它没有用。 这里显而易见的问题是:为什么不使用jQuery .on , .bind , .on等来分配事件处理函数? 答案是:我正在构建一个页面,其中有一个巨大的表格,上面有很多可点击的东西。 不幸的是,这个项目要求页面必须在IE6和IE7中快速渲染。 在IE6和IE7中使用.on等创建了DOM泄漏并且很快就耗尽了内存(使用Drip测试自己: http : .on )。 通过.onclick设置onclick行为是我必须在IE6和IE7中快速渲染的唯一选项。