$('.box').click(function(){
$(this).find('p').toggle(
function () {
$(this).css({"color" : "red"});
},
function () {
$(this).css({"color" : "black"});
}
);
});
Run Code Online (Sandbox Code Playgroud)
如果我执行这个脚本,如果我点击'p'而不是.box类,为什么?'p'颜色会改变?以及当我点击.box div时,如何使它'p'颜色发生变化
.toggle()为事件分配事件处理程序click,你想要的是:
$('.box').toggle(function(){
$('p', this).css({"color" : "red"});
}, function () {
$('p', this).css({"color" : "black"});
});
Run Code Online (Sandbox Code Playgroud)
每次你包装一个新函数时,都会this引用你正在处理的元素(至少,对于这个例子,请看更多关于闭包在这里如何工作),所以首先它是.box选择器匹配,然后它是每个p内部,你想要分配上点击切换.box,切换p的色彩,让您使用.toggle()上.box直接.