我正在尝试使用名为 flexcal 的日期选择器在我的网站上。对我来说,准确地使用它以允许从犹太历中进行选择很重要。我的网站基于 jQuery v3.3.1,但 flexcal 是为 jQuery v2.1.3 设计的。我认为这不会造成任何问题,但我遇到了以下错误:
Uncaught TypeError: $.swap is not a function
经过搜索,我找到了here这是一种旨在保密的方法,从未被记录下来,无论如何,目前我在我的网站上嵌入小部件时遇到了麻烦。查看该小部件的源代码可以发现该方法的使用如下所示:
return $.swap(
parent,
{display:'inline-block'}, // make it visible but shrink to contents
swapper.bind(this, elem, parent.parentNode)
);
有谁知道该方法的目的是什么,它是否有并行替代方案,或其他一些故障排除建议?
最佳答案
如果您查看 jQuery.swap
( https://github.com/jquery/jquery/blob/3.4.1/src/css/var/swap.js ) 的源代码,您会发现它所做的只是临时更改第一个参数 (parent
,在您的情况下),运行计算,然后恢复原始属性值。您可以自己实现。对于您的情况来说,这特别容易,因为我们暂时更改的唯一 CSS 属性是 display
:
var old_display = parent.style['display'];
parent.style['display'] = 'inline-block';
var ret = swapper.bind(this, elem, parent.parentNode).apply(parent, []);
parent.style['display'] = old_display;
return ret;
关于javascript - Query.swap 向后兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60004050/