Javascript 将jQuery对象扩展到我自己的对象
我的问题是下面的代码! 我想将jQuery对象扩展到我的XjQuery对象,我似乎正在工作。 但是在我将找到对象的each函数中,函数myfunc没有声明 这里怎么了 干杯 对不起,我的英语很差Javascript 将jQuery对象扩展到我自己的对象,javascript,jquery,extend,Javascript,Jquery,Extend,我的问题是下面的代码! 我想将jQuery对象扩展到我的XjQuery对象,我似乎正在工作。 但是在我将找到对象的each函数中,函数myfunc没有声明 这里怎么了 干杯 对不起,我的英语很差 XjQuery = function() { var jq = $("<div id=xjq>hallo</div>"); $.extend(this, jq); } XjQuery.proto
XjQuery = function()
{
var jq = $("<div id=xjq>hallo</div>");
$.extend(this, jq);
}
XjQuery.prototype.myfunc = function() {
this.append("<p>myfunc called</p>");
}
xjq = new XjQuery();
xjq.myfunc(); // this works
$("#maindiv").append(xjq); // works also
$("#maindiv").find("#xjq").each(function() {
$(this).myfunc(); // doesn't work
});
XjQuery=function()
{
var jq=$(“哈罗”);
$.extend(这个,jq);
}
XjQuery.prototype.myfunc=函数(){
这个.append(“myfunc调用”);
}
xjq=newxjquery();
xjq.myfunc();//这很有效
$(“#maindiv”).append(xjq);//也起作用
$(“#maindiv”).find(#xjq”).each(function(){
$(this).myfunc();//不起作用
});
在每个中,这个是一个本地DOM元素,$(这个)
是一个jQuery对象。您需要将jQuery对象“转换”为xjQuery
对象
首先,为什么要创建xJquery
对象?为什么不做一个决定呢
然后你可以做:
$("#maindiv").find("#xjq").each(function() {
new XjQuery(this).myfunc();
});
Rocket是正确的,向jQuery添加扩展的正确方法是通过插件。这些扩展将在$
对象上显示为普通方法。例如$('#a-div-id').myPluginMethod(一个参数,另一个参数)
我忘了提到,.My扩展只是一个例子,我有更多不同的对象,这些对象将从jQuery扩展,每个对象都有不同的成员functions@helmi:问题仍然是您需要将jQuery转换为“扩展”对象。我想,您可以使用$.extend
创建一个函数来实现这一点。是否可以将本机对象强制转换为我的扩展对象
XjQuery = function(jq)
{
jq = typeof jq === 'undefined' ? $("<div id=xjq>hallo</div>") : $(jq);
$.extend(this, jq);
}
$("#maindiv").find("#xjq").each(function() {
new XjQuery(this).myfunc();
});