我正在使用jquery没有混淆。但总结时间我对新外星人有点混淆。
//无法正常工作
jQuery.noConflict();
(function ($jq) {
var myTable=$jq(".tblList").dataTable();
myTable.$jq("input[name=isselected]").change(function () {});
})(jQuery);
//工作正常
jQuery.noConflict();
(function ($jq) {
var myTable=$jq(".tblList").dataTable();
//why $jq not works here
myTable.$("input[name=isselected]").change(function () {});
})(jQuery);
答案 0 :(得分:0)
在您的代码中myTable.$
指的是 jQuery构造函数。 myTable
对象没有$jq
属性,它是undefined
,您不能使用undefined
值作为函数。
事实上,您的$jq
参数与myTable.$jq
无关。如果要使用字符串获取属性,则应使用括号表示法:object[aStringThatContainsNameOfAProperty]
。但由于你有值(jQuery构造函数)而不是键("$"
),所以使用括号表示法会得到与myObject
对象没有:
function ( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
}
property(上面的字符串是jQuery构造函数的字符串表示形式)。如果$jq
变量的字符串值为$
,则可以编码:
myTable[$jq](...)