Javascript .css函数在处理程序函数内部不起作用
我想更改命名函数内部的css属性,而不是处理单击事件。如果我在click事件中定义的匿名函数中调用.css,它就会工作。但是,我想在处理函数中定义的命名函数中调用.css。这是我的密码Javascript .css函数在处理程序函数内部不起作用,javascript,jquery,Javascript,Jquery,我想更改命名函数内部的css属性,而不是处理单击事件。如果我在click事件中定义的匿名函数中调用.css,它就会工作。但是,我想在处理函数中定义的命名函数中调用.css。这是我的密码 $(document).ready(function () { $('#popup').click(partial(coolTransition, $(this))); }); function coolTransition(elem) { shrink(); function shr
$(document).ready(function () {
$('#popup').click(partial(coolTransition, $(this)));
});
function coolTransition(elem) {
shrink();
function shrink() {
elem.css('background-color', '#000000');
}
}
//used to implement partial function application so that I can pass a handler reference that takes arguments.
//see http://stackoverflow.com/questions/321113/how-can-i-pre-set-arguments-in-javascript-function-call-partial-function-applic
function partial(func /*, 0..n args */ ) {
var args = Array.prototype.slice.call(arguments, 1);
return function () {
var allArguments = args.concat(Array.prototype.slice.call(arguments));
return func.apply(this, allArguments);
};
}
提前谢谢你的帮助 你认为第二行中的$(这个)
指的是什么?它不是$(“#弹出窗口”)
。如果要引用它,必须先创建引用:
$(document).ready(function () {
var $popup = $('#popup');
$popup.click(partial(coolTransition, $popup));
});
也就是说,没有必要使用partial
。你也可以这样做:
$('#popup').click(function() {
coolTransition($(this));
});
甚至
$('#popup').click(function() {
$(this).css('background-color', '#000000');
});
还有很多其他的方法
顺便说一句,在coolTransition
内部定义shrink
似乎没有必要。除非你有理由,否则不要这样做。你认为第二行中的$(这个)
指的是什么?它不是$(“#弹出窗口”)
。如果要引用它,必须先创建引用:
$(document).ready(function () {
var $popup = $('#popup');
$popup.click(partial(coolTransition, $popup));
});
也就是说,没有必要使用partial
。你也可以这样做:
$('#popup').click(function() {
coolTransition($(this));
});
甚至
$('#popup').click(function() {
$(this).css('background-color', '#000000');
});
还有很多其他的方法
顺便说一句,在coolTransition
内部定义shrink
似乎没有必要。除非你有理由,否则不要这样做。在:
$(document).ready(function() {
$('#popup').click(partial(coolTransition, $(this)));
});
$(此)
是$(文档)
。您需要$(this)
来处理$(“#popup”)
的上下文,为此您需要一个函数:
$(document).ready(function() {
$('#popup').click((function() {
return partial(coolTransition, $(this));
})());
});
或者,您可以完全避免$(此)
:
$(document).ready(function () {
var $elm = $('#popup');
$elm.click(partial(coolTransition, $elm));
});
不过,实际上,partial
的整个用法似乎过于复杂。你为什么认为你需要它?最简单的方法是:
$(document).ready(function() {
$('#popup').click(function() {
coolTransition($(this));
});
});
在:
$(此)
是$(文档)
。您需要$(this)
来处理$(“#popup”)
的上下文,为此您需要一个函数:
$(document).ready(function() {
$('#popup').click((function() {
return partial(coolTransition, $(this));
})());
});
或者,您可以完全避免$(此)
:
$(document).ready(function () {
var $elm = $('#popup');
$elm.click(partial(coolTransition, $elm));
});
不过,实际上,partial
的整个用法似乎过于复杂。你为什么认为你需要它?最简单的方法是:
$(document).ready(function() {
$('#popup').click(function() {
coolTransition($(this));
});
});
你认为第二行中的
这个
指的是什么?你认为第二行中的这个
指的是什么?我用partial让我通过引用参数传递函数。我在另一篇堆栈溢出文章中发现了它,但您所做的要干净得多,所以我将使用它。谢谢@Vish:是的,您可以将一个函数调用包装到另一个函数表达式中来实现这一点。:)我编辑了我的答案来证明这一点。我使用partial让我通过引用参数来传递函数。我在另一篇堆栈溢出文章中发现了它,但您所做的要干净得多,所以我将使用它。谢谢@Vish:是的,您可以将一个函数调用包装到另一个函数表达式中来实现这一点。:)我编辑了我的答案来证明这一点。