小编Ric*_*ney的帖子

数百个DOM元素的JavaScript事件监听器性能

我有一个<ul>有很多孩子(接近3000项),其中一些<li>有很多级别.我在'click'上附加了一个事件监听器(我正在使用jQuery),我用它来切换一个孩子的可见性<li>.

我想知道如此多的事件监听器会影响性能.(至少有1000个!).这对性能来说是个大问题吗?

对于较新的网络浏览器,我并没有真正看到很多性能问题,但IE8看起来非常慢.在所有事情上敲打一个事件听众是不是不负责任?

javascript performance jquery

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

用于生产和登台/开发的不同composer.json文件

场景:

我有一个现有的实时站点,通过几个GIT存储库加载作曲家依赖项dev-master.

一个新的功能请求来自客户端,在我将其从开发合并到主服务器之前,我需要将新的(未完成的)功能部署到临时环境,以便在推送之前从客户端获得正常(我可能需要向客户端显示早期版本的新功能,根本没有准备好主人).

我通常通过capistrano部署东西(不是说我觉得它有任何不同).

我不能require-dev用于新代码,因为它可能是一个需要重构的现有插件.

理想情况下,我可以dev-develop在登台/开发环境和dev-master实时环境中使用插件,但是在同一个composer.json文件中不可能有两次相同的存储库.

我怎么能做到这一点?

git composer-php

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

绑定窗口到popstate事件触发两次

只需将窗口(在jQuery中)绑定到popstate,事件总是被触发两次.

$( window ).bind( 'popstate', myFunction );
Run Code Online (Sandbox Code Playgroud)

myFunction()中没有任何内容可以导致这种情况 - 我已经尝试将此函数剥离为一个简单的:

console.log( 'triggered' );
Run Code Online (Sandbox Code Playgroud)

结果是一样的.它总是被触发两次(在Safari,Chrome和Firefox中测试过).

我知道HTML5历史API存在问题,但是除了'尝试History.js'之外的任何建议都会感激不尽!

jquery html5 history

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

从缓存动态页面停止jQuery mobile

使用jQuery mobile我使用动态"页面"模板,根据用户输入插入自定义内容.

这一切都有效,但是一旦页面被缓存就会创建,如果您返回并进行新选择,则不会显示新值.我尝试过应用以下修复:

$('#instrument').bind('pagehide', function(){
  $(this).remove();
});
Run Code Online (Sandbox Code Playgroud)

这会删除页面,但如果您尝试导航回该页面,它将不会重新初始化,我将继续推回到我的应用程序的开头.

必须使用动态内容添加到页面pagebeforecreate(实际的HTML似乎不重要,所以我不会在这里包含它)否则它将不会被格式化.如果我使用pagebeforeshow的内容将不会被格式化,但如果您返回并进行新的选择,它将会改变.

我意识到pagebeforecreate将缓存页面,但由于内容不格式化,我似乎不能使用任何其他方法:(

我不能为我的生活搞清楚!

jquery caching jquery-mobile

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

关于JavaScript变量的快速问题

不知道在这里搜索什么,如果我重复另一个问题,请道歉.

我想知道在JavaScript中使用以下语法是否存在任何我不知道的问题:

var a = {};

var b = a.niceCoat = {};
Run Code Online (Sandbox Code Playgroud)

看起来很方便,但我只是想确保......

javascript variables

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

JQuery mobile&phonegap =没有横向轮换?

我正在使用jQuery mobile和phonegap编写iPhone应用程序.当我将iPhone旋转到横向时,没有任何反应.显然我错过了什么!谁比我能告诉我什么更聪明?!

iphone jquery-mobile cordova

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

使用jQuery在另一个对象内循环遍历对象内的数组?

我正在尝试遍历一个对象中包含的值数组,该对象本身包含在另一个对象中.

该对象如下所示:

var guitar = {
  high4high5: {
    name: 'high 4th, high 5th',
    tuning: [ [5,4], [-2,3], [2,3], [7,3] ]
  },
  high4low5: {
    name: 'high 4th, low 5th',
    tuning: [ [5,4], [-2,3], [2,3], [7,2] ]
  }
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以像每个循环一样循环使用jQuery:

$.each(guitar, function(key, value) {
  console.log('1st loop: ' + key, value);
  $.each(value, function(key, value) {
    console.log('2nd : ' + key, value);
    $.each(value, function(key, value) {
      console.log('3rd : ' + key, value);
    });
  });
});
Run Code Online (Sandbox Code Playgroud)

但显然这最终会一次又一次地遍历所有事物.

我需要得到的数据是每个对象的'name'(字符串)和'tuning'(数组).

我认为有更好的方式来获得我想要的东西,而不仅仅是无限循环!

可能需要注意的是,我不知道对象内部对象的名称('high4high5'等),但我知道这个对象中的值将始终是name:(string)和tuning:(array).

编辑:

好的,我明白了.

$.each(guitar, function(key, value) …
Run Code Online (Sandbox Code Playgroud)

javascript jquery loops

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

PHP in_array为$ _POST

我希望这个问题不是太模糊,但是这里有.

我想遍历存储在其中的值textfield_array,看看它们是否匹配$_POST数组中的任何键.如果他们这样做,我想将它们分配给an_array数组.

似乎没有比赛,虽然我知道应该有!这是我的代码:

<?php
$an_array = array();

$textfield_array = array(
 'item_no', 'button_text', 'text_field', 'drop_down_title'
);

foreach( $textfield_array as $textfield ){
  if( in_array( $textfield, $_POST ) ){
    $an_array[$textfield] = $_POST[$textfield];
  }
}
?>
Run Code Online (Sandbox Code Playgroud)

我愚蠢吗?或误解$_POST数组如何工作?!

php arrays foreach

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

将函数名称直接传递给jQuery中的事件

我正在尝试将函数直接附加到changejQuery中的事件,但我无法弄明白.我需要将已更改的元素作为参数传递给我正在调用的函数.

像这样的东西,(但它不起作用):

var fun = function( trigger ){
  // do something
};

$( 'select' ).change( fun( $(this) ) );
Run Code Online (Sandbox Code Playgroud)

以下作品:

$( 'select' ).change( function(){
  fun( $(this) );
});
Run Code Online (Sandbox Code Playgroud)

我也试过了(只是为了它的地狱)

$( 'select' ).bind( 'change', fun( $(this) ) );
Run Code Online (Sandbox Code Playgroud)

但它也不起作用.

jquery function

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