关于jQuery组件问题

aiv367 2011-10-09 02:44:09
本人开发jQuery组件过程中一直有个问题困扰中,希望知道的朋友帮帮我,问题如下

(function($){
jQuery.fn.datagrid.delete=function(options){
//我想在这里取得jQuery.fn选择器选择的对象,我该怎么做
};
})(jQuery);

...全文
100 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
峭沙 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 liangws 的回复:]

不过现在很少这种写法了,这样会将delete方法直接暴露出来

JScript code

$.extend($.fn, {
datagrid : function(options){
//存放方法
var fn = {
"delete" : function(o……
[/Quote]+1,如果需要传参数的话,这样:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="jquery.js"></script>
</head>
<body>
<table id="tableRating">
<tbody>
<tr>
<td>★</td><td>★</td><td>★</td><td>★</td><td>★</td>
</tr>
</tbody>
</table>
<script>
$.extend($.fn, {
datagrid : function(){
var args = arguments;
//存放方法
var obj = {
"delete" : function(){
//this为当前元素
alert($(this).attr("id") + ", " + arguments[0]);
}
};

if(typeof args[0] === "string"){
if(args.length === 1){
//用call改变被调用函数的this上下文
obj[args[0]].call(this);
}else{
var _args = [];
$.each(args, function(i, arg){
if(i > 0){
_args[i - 1] = arg;
}
});
obj[args[0]].apply(this, _args);
}
}
return $(this);
}
});
var el = $("#tableRating");
//调用delete
el.datagrid("delete", 'hello');
</script>
</body>
</html>
mlsg2011 2011-10-09
  • 打赏
  • 举报
回复
有如下场景,单击搜索框弹出“热门关键词”浮层,鼠标单击空白处浮层隐藏,但是,鼠标单击浮层中的关键词,页面正常跳转,请问这个怎么做啊?谢谢了!
liangws 2011-10-09
  • 打赏
  • 举报
回复
不过现在很少这种写法了,这样会将delete方法直接暴露出来


$.extend($.fn, {
datagrid : function(options){
//存放方法
var fn = {
"delete" : function(option){
//this为当前元素
alert($(this).attr("id"));
}
};
if(typeof options === "string"){
//用call改变被调用函数的this上下文
fn[options].call(this);
}
return $(this);
}
});
var el = $("#divId");
el.datagrid();
//调用delete
el.datagrid("delete");

个人比较喜欢这种写法
liangws 2011-10-09
  • 打赏
  • 举报
回复

$.extend($.fn, {
datagrid : function(options){

}
});

$.fn.datagrid.delete=function(options){
var self = options.el;//把元素以参数形式传入
};

var el = $("#xxx");
el.datagrid.delete({el:el})
aiv367 2011-10-09
  • 打赏
  • 举报
回复
顶起来

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧