打开jQuery';将s foo.css(';不透明度';,';0';)转换为foo.alpha=0
我有ActionScript方面的背景,希望能够更轻松地设置对象的某些属性。我希望能够设置对象的不透明度速记,如下所示:打开jQuery';将s foo.css(';不透明度';,';0';)转换为foo.alpha=0,jquery,Jquery,我有ActionScript方面的背景,希望能够更轻松地设置对象的某些属性。我希望能够设置对象的不透明度速记,如下所示: foo.alpha = 0; 而不是 foo.css('opacity', '0') 这样做可能吗?给你: $(function(){Object.defineProperty($.prototype, 'alpha', {set: function(value) { this.css('opacity', value); }}); });
foo.alpha = 0;
而不是
foo.css('opacity', '0')
这样做可能吗?给你:
$(function(){Object.defineProperty($.prototype, 'alpha',
{set: function(value) {
this.css('opacity', value);
}});
});
将其放在jQuery之后的文档顶部,以允许使用您描述的语法。可以对其进行扩展,以允许其他属性以这种方式工作。我不能保证它的健壮性,但它似乎确实有效。不过,我建议不要使用它。这段代码甚至可能会让有经验的JavaScript程序员感到困惑。和其他评论者一样,我同意学习一种新语言的风格而不是试图让它看起来像另一种语言通常是一个好主意
这里有一个难题:对我来说,这似乎是一个XY问题。可以扩展jquery来实现这一点,但这似乎太麻烦了。当你学习一门新语言时,请接受它。不要试图弯曲它来匹配不同的语言。只是好奇,有没有办法将一个方法转化为属性?@Tom是的,看看我的解决方案。+1,向你致敬,我认为它会比这更复杂。我同意不在生产或团队中使用类似的东西,但我对以某种方式扩展jQuery或JS的技术很好奇。谢谢你。我从几句台词中学到了很多!