我需要使默认碰撞=“ fit”到处而不是“ flip”。因此,我决定重写$ .fn.position函数。但是,某些东西坏了,它不起作用:元素不移动,并且不显示错误。它什么也没做。我不知道为什么。这是我写的:
(function($) {
var orig = $.fn.position;
$.fn.position = function(options){
if ( options ){if ( !options.collision ){
options.collision = "fit";
}}
return orig.apply(this, options);
}
})(jQuery);
对我来说还不错。如果有更好的方法或解决此问题,请提供帮助。
谢谢
编辑:
我是一个白痴。必须在原始应用中使用参数:
(function($) {
var orig = $.fn.position;
$.fn.position = function(options){
if ( options ){
if ( !options.collision ){
options.collision = "fit";
}
}
return orig.apply(this, arguments);
}
})(jQuery);
最佳答案
没有options
时,您没有默认值
(function($) {
var orig = $.fn.position;
$.fn.position = function(options){
if (!options) {
options = {collision: "fit"}
}
if ( !options.collision ){
options.collision = "fit";
}
return orig.apply(this, options);
}
})(jQuery);
关于javascript - 如何正确重写$ .fn.position函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40845038/