Javascript 简单的js框架,DOM。(模块样式,尝试使其类似于jQuery样式)
这只是一次训练。 为了解决这个问题,我用这个 然后我试着这样打电话:Javascript 简单的js框架,DOM。(模块样式,尝试使其类似于jQuery样式),javascript,html,css,dom,frameworks,Javascript,Html,Css,Dom,Frameworks,这只是一次训练。 为了解决这个问题,我用这个 然后我试着这样打电话: smp('body'); (function color(smp) { window.smp.prototype.changeColor = function() { for (var i = 0; i < this.length; i++) this.el[i].style.color = color; return this; }; })
smp('body');
(function color(smp) {
window.smp.prototype.changeColor = function() {
for (var i = 0; i < this.length; i++)
this.el[i].style.color = color;
return this;
};
})(smp);
但是浏览器找不到我的smp定义。将来,我想添加一些方法来像这样使用它(例如,更改颜色): 如果有人能告诉我我的错误,我将不胜感激 UPD: 添加方法时仍存在一些问题,如:
smp('.myClass').method('attr')
我试过这样做:
smp('body');
(function color(smp) {
window.smp.prototype.changeColor = function() {
for (var i = 0; i < this.length; i++)
this.el[i].style.color = color;
return this;
};
})(smp);
(功能颜色(smp){
window.smp.prototype.changeColor=函数(){
for(var i=0;i
您链接到的文章中的模块导出
部分对此进行了解释
为了实际使用函数,您需要将其分配给一个变量,可以是全局变量,也可以是局部变量。你可以在当地说:
var smp = (...)(window)
但这意味着您必须在函数中返回某些内容。因此,在代码末尾,在}(窗口)之前,返回smp
函数
return smpSelector
总而言之:
var smp = (function(window) {
function smpSelector(selector) {
// ... snip
}
function smpObj(selector) {
// ... snip
}
return smpSelector;
})(window);
最后,如果您希望将其保存在单独的文件中,并且仍然可以访问smp
,则可以全局分配它。事实上,这就是大多数库,包括jQuery
所做的:
(function(window) {
function smpSelector(selector) {
// ... snip
}
function smpObj(selector) {
// ... snip
}
window.smp = smpSelector
})(window);
现在,我们可以从另一个文件执行以下操作:
<script src="/path/to/smp/file"></script>
var foo = smp('something')
var foo=smp('something')
选择器
是一个字符串。。。字符串没有属性nodeType
Wow,您的回答帮助很大,尤其是最新的编辑(这是我一开始就针对的)。我想我现在明白了,真的很感激。继续给我的朋友编码吧!我还有一个问题(关于添加方法)。如果你能查一下的话,我会非常感激的。我很乐意帮忙,但我建议你为它提出一个新问题,只写下与你现在所做的事情相关的部分。