HTML:
<input id="email" name="email" type=text />
<input id="password name="password" type="password" />
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
var fields = ["email","password"];
for (var i in fields) {
var field = $("#"+fields[i]);
field.bind({
focus: function() {
field.css("border-color","#f00");
},
blur: function() {
field.css("border-color","#000");
}
});
}
Run Code Online (Sandbox Code Playgroud)
我的愿望行动如下:
但是,只有密码存档才会发生该事件,无论我放置光标还是从上述任何字段中删除光标.
有人能告诉我为什么以下不会编译?
#include "a.h"
#include <list>
#include <algorithm>
#include <tr1/functional>
using namespace std;
class B {
public:
B() {
list< A* > aList;
A* a = new A();
lower_bound( aList.begin(), aList.end(), a, tr1::bind( &B::aComp, tr1::placeholders::_1, tr1::placeholders::_2 ) );
}
private:
bool aComp( A* a1, A* a2 );
};
Run Code Online (Sandbox Code Playgroud)
编译输出:
In file included from c:\qt\2010.04\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/tr1/functional:56,
from ..\bindTest\/b.h:4,
from ..\bindTest\b.cpp:1:
c:\qt\2010.04\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/tr1_impl/functional: In member function 'typename std::tr1::result_of<_Functor(typename std::tr1::result_of<std::tr1::_Mu<_Bound_args, std::tr1::is_bind_expression::value, (std::tr1::is_placeholder::value > 0)>(_Bound_args, std::tr1::tuple<_UElements ...>)>::type ...)>::type std::tr1::_Bind<_Functor(_Bound_args ...)>::__call(const std::tr1::tuple<_UElements ...>&, std::tr1::_Index_tuple<_Indexes ...>) [with _Args = …Run Code Online (Sandbox Code Playgroud) 我无法使用1.7获取新的.on点击工作.
对于动态创建的链接(例如通过单击"创建"按钮生成的链接),这些链接需要与DOM中的静态链接相同的单击功能.
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
<script type="text/javascript">
function createDivs(){
content = '<div class="tile-button"><a class="tile-action" href="#" rel="1234" alt="Open">Dynamic Link</a></div>';
$(content).appendTo("#dynamicArea");
$('.tile-action').bind('click',function(){});
}
$(document).ready(function(){
$('#createButton').on("click", createDivs);
$('#destroyButton').on("click", function(event){
$("#dynamicArea").html("");
});
$('.tile-action').on("click", function(event){
var linkalt = $(this).attr("alt");
var linkrel = $(this).attr("rel");
alert(linkalt + " " + linkrel);
return false;
});
});
</script>
</head>
<body>
<button id="createButton">CREATE</button> <button id="destroyButton">Destroy :(</button>
<div id="dynamicArea"></div>
<br>
<a class="tile-action" href="#" rel="1234" alt="Open">Link</a><!-- works -->
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在此问题的简化示例中,单击"创建"按钮时,将显示动态链接.当您单击没有任何反应时,这些动态链接不像静态链接那样调用警报.
我试图在绑定上sumarise两个输入字段.
这是我的功能:
$j('#calclength, #calcwidth').keyup(function() {
var s1 = $j('#calclength').val();
var s2 = $j('#calcwidth').val();
var s3 = (s1) + (s2);
$j('.s1').text(s3);
});
Run Code Online (Sandbox Code Playgroud)
而#calclength,#calcwidth是我的输入,而.s1是带结果的跨度.
在插入输入时插入例如1和2的情况下,结果将显示为12而不是3.
你们能告诉我我在这里做错了吗?
提前谢谢你的帮助.大教堂
我有两个人和团队.
如果在People系列中添加了一个人,我希望Teams系列能够收听.
但是,我不断收到此错误:未捕获TypeError:无法读取未定义的属性'_listenerId'
也许我误解了bind和listenTo的概念?下面是我正在为两个集合使用的代码.
var People = Backbone.Collection.extend({
url: '/people',
model: Person,
comparator: 'id',
initialize: function() {
//Why does this return '_listenerID of undefined'
this.bind('add', function() {
var teams = new Teams;
teams.render;
});
},
});
var Teams = Backbone.Collection.extend({
url: '/team',
model: Team,
comparator: 'id',
initialize: function() {
this.listenTo(People.collection, 'add', this.render);
},
render: function() {
console.log("POOP")
}
});
Run Code Online (Sandbox Code Playgroud) 我有一个函数,基本上创建一个覆盖整个页面的叠加div元素.它还将resize事件绑定到窗口,因此每当调整窗口大小时,叠加层也会更改其大小:
function stdOverlay() {
var overlay = $('<div />').css({width : $(window).width(), height : $(window).height()});
var overlayResize =
function() {
$(overlay).css({width : $(window).width(), height : $(window).height()});
};
$('body').append(overlay);
$(window).resize(overlayResize);
//... other codes, like remove overlay and unbind the events
//$('div.stdgui-overlay').unbind('resize', overlayResize);
}
Run Code Online (Sandbox Code Playgroud)
每次调用该函数时,如果没有,则添加一个叠加层,并将resize事件绑定到窗口.当它应该删除重叠事件时,它也会取消绑定事件.如果overlayResize方法绑定到window元素,如何防止重复绑定?就像是:
if(overlyResize is not bound to window)
$(window).resize(overlayResize);
else
//do something else or do nothing;
Run Code Online (Sandbox Code Playgroud) 用Javascript可能会写
var ids = ['item0', 'item1', 'item2', 'item3']; // variable length
function click_callback(number, event)
{
console.log('this is: ', number);
}
for (var k = 0; k < ids.length; k += 1)
{
document.getElementById(ids[k]).onclick = click_callback.bind(null, k);
}
Run Code Online (Sandbox Code Playgroud)
因此,即使在调用函数k时它已更改,我也可以将其注册时的值传递给回调函数。
Python有办法做一些等效的事情吗?
具体情况是这样(但我更喜欢一个一般性的答案):
我有可变数量的matplotlib图(每个坐标一个)。每个都有一个SpanSelector,出于某种原因,它被设计为仅将两个极限点传递给回调函数。但是,它们都具有相同的回调函数。所以我有:
def span_selected(min, max):
Run Code Online (Sandbox Code Playgroud)
但是我需要
def span_selected(which_coordinate, min, max):
Run Code Online (Sandbox Code Playgroud)
在注册回调时,我当然知道坐标,但是在调用函数时我需要知道它。在Javascript中,我会做类似的事情
callback = span_selected.bind(null, coordinate)
Run Code Online (Sandbox Code Playgroud)
我将在Python中做什么?
我遇到了这段代码:
auto f3 = std::bind(&Foo::print_sum, &foo, 95, _1);
Run Code Online (Sandbox Code Playgroud)
在前面的代码中,我们可以将地址运算符应用于成员函数,而没有创建实例对象,这怎么可能?
我onClick在React组件中有一个包含以下内容的道具:
onClick={_.bind(this.callMe, this, argToPass)}
Run Code Online (Sandbox Code Playgroud)
请记住,这是在使用React.createClass的React组件中,因此组件函数应该绑定到它的上下文.
不幸的是,当我尝试通过执行以下操作来绑定它时:
onClick={this.callMe(argToPass)}
Run Code Online (Sandbox Code Playgroud)
它破坏了我的一项测试.
我不想绑定它,因为它像这样的道具传递:
onClick={this.callMe(argToPass).bind(this)}
Run Code Online (Sandbox Code Playgroud)
b/c性能问题.
什么是香草javascript相当于:
_.bind(this.callMe, this, argToPass)
Run Code Online (Sandbox Code Playgroud)
这将允许函数正确绑定.
谢谢!
我遇到一个绑定无法理解的问题。我尝试了所有方法在与StackOverflow相关的所有问题中进行绑定,但是每次我都具有相同的绑定
错误:“反应无法读取未定义的属性'bind'”
错误2:“ TypeError:无法读取值为null的属性'__reactInternalInstance $ b7iw1elmz95'
Object.getClosestInstanceFromNode"
因为我已经尝试了一切,所以我想知道绑定外部问题是否是一个真正的问题。
我想做的是,当我单击一个按钮时,出现另一个内容。
这是我的代码:
import React, {Component} from 'react';
export default class Projects extends Component {
constructor(){
super();
this.state = {
onShow: false,
opacity: 0,
height: 0
}
}
OnShow(){
this.setState({
onShow: !this.state.onShow,
opacity: this.state.opacity === 0 ? 1:0,
height: '100vh'
});
}
render(){
return(
<div>
<h2>blabla</h2><p>some extra blabla</p>
<button onClick={this.onShow.bind(this)}>
<div opacity={this.state.opacity}>YO</div>
</button>
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud) bind ×10
javascript ×4
jquery ×4
events ×3
c++ ×2
reactjs ×2
backbone.js ×1
callback ×1
click ×1
comparison ×1
data-binding ×1
forms ×1
lodash ×1
python ×1
stl ×1