gpt4 book ai didi

jquery - 如何使用命名空间创建 jQuery 元素方法

转载 作者:行者123 更新时间:2023-12-03 22:48:05 26 4
gpt4 key购买 nike

可以说,我想对我的插件进行一些分支编写,并决定我希望能够对它们进行“命名空间”。至此,重写了$.method发送至 $.namespace.method很容易。

我遇到的问题是制作元素方法,例如 $('element').method() ,但要使用命名空间;例如$('element').namespace.method() 。我尝试了一些解决方法,可以创建 $.fn.namespace.method但是,当我调用this时从该方法中,我只得到 $.fn.namespace而不是 'element'我想得到的。

示例:如果我调用 $('body').namespace.test() ,然后在方法 test 内,我要this成为元素<body></body>

任何关于如何实现这一目标的帮助都非常感谢。可能只是像平常一样想太多了。

目前正在尝试可能的解决方法,例如 $('body').namespace().method() ,到目前为止,工作得不太好......:P

最佳答案

如果不需要兼容IE8,可以使用Object.defineProperty .

工作示例:

 Object.defineProperty($.fn, 'namespace', {
get: function(){
var t = this;
return {
lowercasehtml: function(){
return t.html(function(_,h){ return h.toLowerCase() });
}
}
}
});

$('#a').namespace.lowercasehtml(); // changes the html of #a to lowercase (yes, it's stupid, I know)

<强> Demonstration

但我不相信这样的命名空间是个好主意。我会简单地定义

$.fn.namespace_lowercasehtml = function() ...

这就是我个人为我的应用程序特定的 jQuery 扩展所做的事情。

关于jquery - 如何使用命名空间创建 jQuery 元素方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17704130/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com