Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .css函数在处理程序函数内部不起作用_Javascript_Jquery - Fatal编程技术网

Javascript .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

我想更改命名函数内部的css属性,而不是处理单击事件。如果我在click事件中定义的匿名函数中调用.css,它就会工作。但是,我想在处理函数中定义的命名函数中调用.css。这是我的密码

$(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:是的,您可以将一个函数调用包装到另一个函数表达式中来实现这一点。:)我编辑了我的答案来证明这一点。