javascript-授予jQuery插件访问所选DOM对象的权限
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-授予jQuery插件访问所选DOM对象的权限,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1532字,纯文字阅读大概需要3分钟。
内容图文
![javascript-授予jQuery插件访问所选DOM对象的权限](/upload/InfoBanner/zyjiaocheng/653/7712804d3c114d2bad489cd95a333d2e.jpg)
我正在尝试为jQuery编写一个插件,该插件不遵循其文档中概述的模式:http://docs.jquery.com/Plugins/Authoring
如下:
(function( $){
$.fn.insert = {
'hello': function(text){
$(this).text(text);
},
'goodbye': function(){
alert('goodbye');
}
}
})( jQuery );
该页面使用以下代码实例化此插件:
$(document).ready( function(){
$('#test').insert.goodbye();
$('#test').insert.hello('blahblahblah');
});
在这种形式下,.goodbye()确实会初始化正确,但很明显,.hello()不会正确初始化.在Firebug中检查此内容时,它表明范围属于其包含的功能. (提示facepalm).
如何为内部的函数“ hello”访问选定的DOM对象?我对讨论为什么或为什么不应该以这种方式创建插件的讨论并不感兴趣.对我来说,这更是一种学术练习.
附言我还应注意,当hello()部分尝试运行时,我收到此错误:doc.createDocumentFragment不是一个函数.
更新
(function( $){
$.fn.insert = {
'el': this,
'hello': function(text){
$(this.el).text(text);
},
'goodbye': function(){
alert('goodbye');
}
}
})( jQuery );
对此代码进行了更新.仅供参考,Firebug确实表明this.el引用了相关的DOM对象,并且文本仍然带有传递的字符串,但是仍然没有将文本插入到元素中,并且仍然给了我上述错误.
解决方法:
我不确定…但这是可行的:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script>
(function($){
$.fn.myinsert = function(){
this.hello = function(text){
$(this).text(text);
};
this.goodbye = function(){
alert('goodbye');
};
return this; //this is the gotcha
};
})(jQuery);
$(function(){
var test = $('#test');
test.myinsert().goodbye();
test.myinsert().hello('heyo');
});
</script>
</head>
<body>
<div id="test">My name is</div>
</body>
</html>
内容总结
以上是互联网集市为您收集整理的javascript-授予jQuery插件访问所选DOM对象的权限全部内容,希望文章能够帮你解决javascript-授予jQuery插件访问所选DOM对象的权限所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。