本人开发jQuery组件过程中一直有个问题困扰中,希望知道的朋友帮帮我,问题如下(function($){
jQuery.fn.datagrid.delete=function(options){
//我想在这里取得jQuery.fn选择器选择的对象,我该怎么做
};
})(jQuery);
jQuery.fn.datagrid.delete=function(options){
//我想在这里取得jQuery.fn选择器选择的对象,我该怎么做
};
})(jQuery);
$.extend($.fn, {
datagrid : function(options){
}
});
$.fn.datagrid.delete=function(options){
var self = options.el;//把元素以参数形式传入
};
var el = $("#xxx");
el.datagrid.delete({el:el})
$.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");个人比较喜欢这种写法
<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>