小编Mar*_*ahn的帖子

如何防止表单提交触发`按钮:first.onclick()`?

每次按下提交表单时,相关表单中第一个enterclick()功能<button>都会被触发.问题(除了我发现这种行为很奇怪的事实)是它实际上是一个click事件,与实际点击按钮无法区分.如果它在我的提交按钮上触发了偶数,我就可以了.

问题是,在这种情况下,第一个按钮与实际表单无关,它实际上是一个隐藏的弹出窗口.

所以确切的问题:为什么会发生这种情况?我该如何预防呢?我如何区分这个"虚假点击"事件与真实事件?

(这是一个非常简化的示例;实际代码使用的是jQuery(如果jQuery碰巧承认这个并且有一个修复),但实际问题与jQuery无关)

<form>
    <input>
    <button onclick="alert('button A click');">Button A</button>
    <button onclick="alert('button B click');">Button B</button>
    <input type="submit" value="Submit Button">
</form>
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/NexHC/2/

请不要"移动按钮"的建议

javascript javascript-events

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

正则表达式解析任何CSS字体

只是想知道是否有人有一个经过试验和测试的正则表达式来解析css字体字符串到它的各个部分:

  • 12px arial
  • 斜体大胆的无衬线
  • 12px/50px verdana
  • 等等

javascript regex

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

如何从影子dom中走出来?

我有一个结构:

<div>
    #shadow-root
        <span>
Run Code Online (Sandbox Code Playgroud)

如何引用divspan

span.parentNode#shadow-root,.parentNode从那是null

javascript shadow-dom polymer

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

为什么IE(和Firefox 4)没有正确包装这个?(hasLayout的??)

我有以下内容(http://jsfiddle.net/gVZwr/4/):

<div>
    <label>From</label>
    <span>Some Content Goes Here</span>
</div>

span {
    display: inline-block;
    overflow:hidden;
}
Run Code Online (Sandbox Code Playgroud)

在IE8/9中,标签和跨度不对齐(标签低于跨度).

为什么???我可以通过贴上overflow:hidden标签来修复它,但我想知道是什么导致它.我尝试了旧的"hasLayout"修复程序,例如zoom:1贴上标签,但似乎没有什么可以修复它,具体而言,overflow.

css haslayout internet-explorer-8 internet-explorer-9

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

获取字符输入,跨浏览器

简单的问题——有没有人知道一个可靠的跨浏览器函数来从 keydown 事件中输入字符?我可以从 quirksmode 网格中编写一个,但宁愿不为如此简单但如此非标准的东西重新发明轮子。

让我澄清一下:

仅使用event.keyCode或无法做到这一点event.which。整体逻辑是这样的:

  • 获取键码
  • 检测移位,ctrl
  • 如果ctrl,忽略
  • 使用和不使用 shift 键创建键码映射
    • 示例地图 {186 : ';', 187 : '=', 188 : ',', ....}
    • 需要一个单独的地图用于 shift 键修饰符
    • 地图需要根据浏览器进行更改(尤其是 Safari Mac,它的键码为 60,000)
  • 如果键码在映射中,则返回映射键
  • 如果键码不在映射中,则对数字进行标准化,如有必要应用 shift 修饰键,返回 String.fromCharCode(key)

这不是一个简单的解决方案,这就是为什么我正在寻找一个预制的解决方案:)

javascript javascript-events

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

将数字添加到char*的结果是什么?

我正在用C++转换一个算法,这个算法在10多年里我还没有触及过,我只是想知道是否有人可以告诉我(char *)+2结果是什么?

确切的代码:

uint32_t SuperFastHash (const char * data, int len) {
    ...
    tmp = (get16bits (data+2) << 11) ^ hash;
Run Code Online (Sandbox Code Playgroud)

c++ pointers

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

npm 对等依赖意外失败

我正在尝试找出对等依赖问题,对我来说一切都很好......

我的package.json有:

, "devDependencies" : {
    "gulp-watchify" : "^0.2.0"
    ,    "watchify" : "^0.10.2"
}
Run Code Online (Sandbox Code Playgroud)

gulp-watchify/package.json具有:

"peerDependencies": {
    "watchify": "^0.6.1"
},
Run Code Online (Sandbox Code Playgroud)

0.10.2斯塔菲斯^0.6.1,不是吗?那么为什么npm抱怨:

npm ERR! peerinvalid The package watchify does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer gulp-watchify@0.2.0 wants watchify@^0.6.1

npm ERR! System Darwin 14.0.0
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! cwd <path redacted>
npm ERR! node -v v0.11.12
npm ERR! npm -v 1.4.3
npm ERR! code EPEERINVALID …
Run Code Online (Sandbox Code Playgroud)

node.js npm

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

React:动态设置元素键

tl; dr - 如何动态添加key到React元素?


我有一个React组件,当单独站立时,它有一个静态的子列表:

<componentA>
  <child ... />
  <child ... />
  <child ... />
</componentA>
Run Code Online (Sandbox Code Playgroud)

由于列表是静态的,因此不需要任何子项上的键.

现在我有另一个组件来包装这个组件并让它成为动态的子组件:

function componentB(componentA) {
  return class extends React.Component {
    render() {
      const filteredChildren = // ... filter this.props.children

      return (<componentA>
        {filteredChildren}
      </componentA>)
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

由于孩子现在是动态的,我需要添加keys给他们,但如果我尝试类似的东西:

React.Children.map((child, i) => {
  child.key = i;
  return child
});
Run Code Online (Sandbox Code Playgroud)

它失败说key是只读.从这个问题来看,似乎cloneElement也是一个禁忌.那么有没有办法动态设置key

javascript reactjs

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