小编fre*_*ent的帖子

我可以使用Jquery nearest()创建一个包含多个元素的选择器吗?

我有点击事件的监听器,我需要从中排除一些元素.

现在我的列表正在增长,所以我正在寻找一种更好的方法来"捆绑"选择器中的多个元素.

这就是我所拥有的:

$(document).on('click tap', function(event) {               
    if ($(event.target).closest('div:jqmData(panel="popover")').length > 0 ||
        $(event.target).closest('div.pop_menuBox').length > 0 ||
        $(event.target).closest('.toggle_popover').length > 0 ) ||
        $(event.target).closest('.ui-selectmenu').length > 0 {
          return; 
    }
    // do stuff
});
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来排除这些元素?

感谢帮助!

javascript jquery jquery-selectors closest

8
推荐指数
2
解决办法
8358
查看次数

是否可以从jsperf删除损坏的修订版?

我正在用jsperf(这里)改进我的一些脚本的性能的第一步.

我想知道是否有可能删除/删除我意外发布的测试版本 - 它们已被破坏且无法使用,因此:

问题:
假设我在进行修订5时想出它是如何工作的 - 有没有办法删除修订版1-4?

谢谢!

javascript performance jquery jquery-mobile jsperf

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

如何仅使用CSS选择n> 4个元素的第一个元素?

我正在玩nth-child选择器.

说我有网格,各有4个元素的行和我的第一个和最后一个元素拥有类ui-first-childui-last-child分别为:

<ul>
 <li.ui-first-child>
 <li>
 <li>
 <li.ui-last-child>
</ul>
Run Code Online (Sandbox Code Playgroud)

我想要做的是,如果使用纯CSS 有超过4个元素,则仅选择第一个元素.

所以,如果有五个这样的元素:

 <el.first><el><el><el>
 <el.last>
Run Code Online (Sandbox Code Playgroud)

我想覆盖第一个元素的底角.

问题:
纯CSS/nth-child/first/last类是否可以选择元素数> 4的元素组中的第一个元素?

谢谢!

css css-selectors css3

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

更改选项卡时如何从activeElement中删除焦点(onfocus/onblur)?

当用户在桌面上切换标签时,我正试图从(jQuery Mobile)文本输入中删除焦点.虽然我可以在下面的控制台中正确识别activeElement,但我无法编辑其任何属性或删除其焦点.

这就是我正在做的事情:

// inside some init method        

window.onfocus = function () {
  // triggers
  console.log(document.activeElement);
  if (document.activeElement.tagName !== "BODY") { 
    console.log("clear focus");   
    document.activeElement.blur();
    document.activeElement.className = "FOOBAR";
  }
};
Run Code Online (Sandbox Code Playgroud)

当我在一个表单上并聚焦文本输入时,然后切换到另一个选项卡并返回到带有表单的选项卡,事件侦听器触发并且我的仍然活动的输入被正确记录.然而就是这样......我无法模糊或编辑任何元素属性.

问题:
如何正确地从活动元素中移除焦点window.onfocuswindow.onblur

谢谢!

PS:它也不适用于jQuery:

$(window).on("focus", function () {
  $(document.activeElement).blur();
});
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个只有JavaScript的解决方案.

编辑:
document.activeElement.blur()从控制台工作正常,但不是从我的听众.

javascript jquery tabs focus onblur

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

如何使用map或reduce对任意数量的链元素运行promise-then链?

我坚持以下几点:

脚本返回任意数字n或数组,如下所示:

[["a"], ["b"], ["c"], ["d"]]
Run Code Online (Sandbox Code Playgroud)

我需要使用promise循环遍历数组then(),但由于我不知道会有多少元素,所以我最终做到了这一点:

  var bundle_list = [["a"], ["b"], ["c"], ["d"]];

  var x = bundle_list.reduce(function(current, next) {
  console.log(current);

  // requestBundle will also return a promise
  return requestBundle(current)
    .then(function(bundle_response) {
      // do foo
      console.log("CALLING NEXT")
      console.log(next);
      return RSVP.resolve(next);
    });
})

x.then(function(last_response) {
  return console.log("DONE")
});
Run Code Online (Sandbox Code Playgroud)

我的问题是我的reduce/map两个都在我的异步代码运行之前触发所有迭代,所以我得到3倍的current控制台,然后是done控制台.所以我的所有地图"循环"都会立即运行,结果会稍后(稍后)计时...

我正在使用这个RSVP实现,但它是A +所以不应该是一个问题.我一直在努力解决这里提供的答案,但我无法让它正常工作.

问题:
是否可以使用任意数量的then语句创建"then-chain" .如果是这样,一些指针表示赞赏!

谢谢!

javascript asynchronous mapreduce promise rsvp-promise

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

在CSS中,[class] [class]比[element] [class]快吗?

我知道这很挑剔但是我正在和一个编辑器一起工作,这个编辑器会发现CSS并不断抱怨

don't use adjoining classes > e.g.  .foo.bar
Run Code Online (Sandbox Code Playgroud)

我忽略了这些警告,但这让我很好奇,也找不到任何东西.说我有:

  <ul class="foo bar"></ul>
Run Code Online (Sandbox Code Playgroud)

哪个CSS选择器更快:

  ul.foo
  .bar.foo
Run Code Online (Sandbox Code Playgroud)

我知道选择器从右到左工作,因此在两种情况下foo都会先选择,之后浏览器必须找到所有ul选择(?)或所有.bar元素(?).

问题:
在CSS中,[class][class]速度快于[element][class]

谢谢!

css browser performance css-selectors

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

IE8中有多少像素是1em?

在所有浏览器中,1em不应该是16px吗?

我有这个CSS

* {font-size: 1em; }
label { font-size: .85em; }
Run Code Online (Sandbox Code Playgroud)

IE8上的标签元素高度为12px,相对于我希望的13.6px.

感谢帮助!

css internet-explorer em pixels

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

如何使水平元素扩展以覆盖可用空间?

我正在尝试CSS fluid tab menu使用可变数量的选项卡创建一个(类似于Windows中可以看到的,其中选项卡根据包含的标题的长度进行扩展,请参见下文).

在此输入图像描述

这是一个例子,我有设置(我需要保持元素结构):

<div class="test">
    <div class="element">
        <h3>
            <span class="dummy-a">
                <span class="dummy-ui-btn-inner">
                    <span class="dummy-ui-btn-text">very long text is this</span>
                </span>
            </span>
        </h3>
    </div>
     <div class="element">
        <h3>
            <span class="dummy-a">
                <span class="dummy-ui-btn-inner">
                    <span class="dummy-ui-btn-text">Two</span>
                </span>
            </span>
        </h3>
    </div>
     <div class="element">
        <h3>
            <span class="dummy-a">
                <span class="dummy-ui-btn-inner">
                    <span class="dummy-ui-btn-text">Three</span>
                </span>
            </span>
        </h3>
    </div>
     <div class="element">
        <h3>
            <span class="dummy-a">
                <span class="dummy-ui-btn-inner">
                    <span class="dummy-ui-btn-text">Four</span>
                </span>
            </span>
        </h3>
    </div>
    <div class="element">
        <h3>
            <span class="dummy-a">
                <span class="dummy-ui-btn-inner">
                    <span class="dummy-ui-btn-text">Five</span>
                </span>
            </span>
        </h3>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

和CSS: …

javascript css jquery alignment css-float

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

是否可以在JavaScript中将空字符串("")转换为未定义的一行?

就是想.我有一个方法(URItemplate),我需要在未定义的情况下返回undefined.目前我这样做:

 var x = UriTemplate.parse(value || "").expand({"some":"properties"} || {});
Run Code Online (Sandbox Code Playgroud)

如果value我的扩展对象{}作为空字符串和空对象传递,x等于"".

我想知道是否有任何我可以使用空字符串将其转换为undefined,所以我可以稍后调用...

 $.ajax({"url": x || default_url})...
Run Code Online (Sandbox Code Playgroud)

当然有if-else或者?:||也是if-else,但我想知道是否还有另一种方法可以做到这一点.

谢谢!

javascript string undefined

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

如果没有显示“列表”,CSS 显示“列表项”有什么用?

我正在寻找使用 div 标签中的列表项创建 HTML 列表元素。我知道有display:list-item,但如果我有这个:

 <ul>
  <li>A</li>
  <li>B</li>
  <li>C</li>
 </ul>
Run Code Online (Sandbox Code Playgroud)

得到这个:

 <ul>
  <li>A</li>
  <li>B</li>
  <li>C</li>
 </ul>
Run Code Online (Sandbox Code Playgroud)
.item { display: list-item};
.list { display: block };
Run Code Online (Sandbox Code Playgroud)

没有得到我任何地方。

问题:
有没有办法<ul>使用<div>标签获得等价物,为什么不存在display:list-itemwhen display:list

谢谢!

html css list responsive-design

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