小编bha*_*a_w的帖子

节流和去抖函数之间的区别

任何人都可以给我一个简单的单词解释,说明为限速目的限制函数和去除函数之间的区别.

对我来说,两者似乎也做同样的事情.我查看了这两个博客,了解:

http://remysharp.com/2010/07/21/throttling-function-calls

http://benalman.com/projects/jquery-throttle-debounce-plugin/

javascript

198
推荐指数
14
解决办法
5万
查看次数

媒体查询浏览器的不同缩放级别

我是使用CSS3媒体查询的响应式设计的新手.我清楚地了解我们如何使用这些媒体查询来定位不同的设备,但我感到困惑的地方是BROWSER ZOOMING !!

对于Eg:这是我正常的身体css规则

#body {
    margin: 0 auto;
    width: 70%;
    clear: both;
}
Run Code Online (Sandbox Code Playgroud)

当我想更改此css规则以定位宽度落在150px和600px范围内的设备时,我添加此特定媒体查询.

@media only screen and (min-width:150px) and (max-width:600px){

#body {
    margin: 0 auto;
    width: 90%;
    clear: both;
}


}
Run Code Online (Sandbox Code Playgroud)

问题:我正在使用谷歌浏览器,当我放大到大约200%时,这个特定的媒体查询开始发挥作用.

我如何知道要为不同的缩放级别编写哪些媒体查询,或者另外说明浏览器缩放级别和像素宽度之间的关系.

css html5 css3 media-queries responsive-design

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

Javascript:检测事件是否由用户触发而不是以编程方式触发

好吧,这个问题之前已经被问过,但是在jQuery的背景下.在jQuery中,我们可以通过事件Object(link)的originalEvent属性来检查它,它告诉它是手动事件还是编程事件. 在我的情况下,我使用Javascript事件监听器和触发器.在这种情况下,我们可以区分这两种事件(编程和手动)吗?如果不是那么任何变通方法?



我的听众:

   function setUpListeners(){
       _cellViewWrapper.addEventListener('mousedown',mouseDownHandler,false);
       _cellViewWrapper.addEventListener('mouseover',mouseEnter,false);
       _cellViewWrapper.addEventListener('blur',blurHandler,true);
       _cellViewWrapper.addEventListener('focus',focusEventHandler,true);
   }`
Run Code Online (Sandbox Code Playgroud)

触发器使用案例:1.)

if(!IE_FLAG) hidePicker();
           //if browser is internet explorer
           else{
               //if blur is allowed then hide Picker
               if(_ieBlurAllowed) hidePicker();
               //if blur is not allowed -- keep focus on picker input
              //triggering the focus event here
               else blurredElement.focus(); /
         }
Run Code Online (Sandbox Code Playgroud)

2.) if((inputElem !== _focussedInput)) setTimeout(function(){ inputElem.focus(); },10);

还有很多...

javascript dom-events

11
推荐指数
3
解决办法
6505
查看次数

Chrome开发者工具:查看页面中使用的所有事件监听器

chrome dev工具(或任何扩展)中是否有一个功能,通过它我可以查看某个页面/应用程序上使用的所有事件侦听器.

编辑:
它肯定不是这个问题的重复:如何查看在Chrome DevTools中的元素上触发的事件?

上述问题解释了如何寻找那些被解雇的时候,我们用我们的应用程序交互的特定事件(我知道如何做到这一点!).

什么我找的所有事件的列表,我们听着应用程序和DOM它们所连接到的元素.

javascript google-chrome google-chrome-devtools

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

撤消(ctrl + z)功能以恢复隐藏的div

fiddle http://jsfiddle.net/Q8F5u/3/

我有多个div,每个顶部都有一个删除按钮来删除特定的div(实际上我必须隐藏不删除).的div之后已经删除了我想要检索他们回来按CTRL + Z.

我把它们带回来取得了一些成功.我使用的逻辑是我删除的divs id 堆栈,每当我按下ctrl + z时,我从堆栈中弹出最后一个隐藏的div ID并使用此id来恢复隐藏的div.

这里的javascript:

var deletedBlocks = [];

$('.delete').on('click',function(){
   var deletedid = $(this).closest('div[id^=block]').attr('id');
    deletedBlocks.push(deletedid);
   $(this).closest('div[id^=block]').fadeOut(500); 


});

$('body').on('keydown',function(e){
    //check for ctrl + z key

    if( e.ctrlKey && e.which == 90){

        if(deletedBlocks.length > 0){

           var lastdeleted = deletedBlocks.pop();
            $('.container').children('#'+  lastdeleted).fadeIn(1000);
    }
        else{
            alert('NO further Shift to be retrieved');
        }
    }

});
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,在我的实际应用程序中,这些div没有这样的唯一ID.相反,他们都有相同的类.如何在没有div具有唯一ID的情况下实现相同的功能.

javascript jquery

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

删除用于带节流功能的Scroll事件侦听器

我有调用的函数,它将在页面上打开特定的视图

function dayViewOpen(target){
         var date = getDate();
          ..
          ..
          ..
        document.addEventListener('scroll',throttle(function(event){
            scrollAddData(date);
        },10));
}
Run Code Online (Sandbox Code Playgroud)

同样,我有一个功能可以关闭该特定视图

 function dayViewClose(target){
        ..
        ..


    }
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都运转良好。但是,当我必须删除较早添加的事件侦听器时,问题开始出现。即当我调用函数dayViewclose()时必须删除事件侦听器;

我知道我们需要引用侦听器才能将其删除,所以我在这样做时会如此。

var handler = throttle(function(event){
                scrollAddData();
            },10);

 function dayViewOpen(target){
         var date = getDate();
          ..
          ..
          ..
        document.addEventListener('scroll',handler,false);
}

 function dayViewClose(target){
        ..
        ..

        //remove earlier added event listener
       document.removeEventListener('scroll',handler,false);
    }
Run Code Online (Sandbox Code Playgroud)
  • 然后我无法将date参数传递给我的处理程序(如何将date参数传递给处理程序)和
  • 即使我放弃了日期参数,然后我也无法使用removeEvent Listener删除处理程序。(如何正确删除事件监听器

任何帮助将不胜感激

javascript

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

在参数中声明一个数组是不好的做法?

validationError([elem1,elem2],type,shiftNo);
Run Code Online (Sandbox Code Playgroud)

要么

var arr = [elem1,elem2];
validationError(arr,type,shiftNo);
Run Code Online (Sandbox Code Playgroud)

我的意思是问题是调用被认为是坏的函数的方法1(它也有任何性能分支).对于这个问题,在参数内声明字符串,对象和函数是一种糟糕的方法.

javascript

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