添加jquery noconflict后未定义函数addrow

添加jquery noconflict后未定义函数addrow,jquery,Jquery,我有jQuery脚本,需要用jquerynoconflict实现,但它似乎破坏了documentready中的函数 jQuery: var$j=jQuery.noConflict(); $j(文档).ready(函数(){ var-rowNum=0; 函数addRow(frm){ rowNum++; var row='; $j(“#itemRows”).append(row); } 函数移除器(rnum){ $j('#rowNum'+rnum).remove(); } }); HTML:

我有jQuery脚本,需要用jquerynoconflict实现,但它似乎破坏了documentready中的函数

jQuery:
var$j=jQuery.noConflict();
$j(文档).ready(函数(){
var-rowNum=0;
函数addRow(frm){
rowNum++;
var row='

; $j(“#itemRows”).append(row); } 函数移除器(rnum){ $j('#rowNum'+rnum).remove(); } });
HTML:

JSFIDLE示例:


问题是如何在jquery无冲突文档中使用函数?

onXYZ
属性处理程序调用的函数必须是全局函数。您的函数不是全局函数,因为它们嵌套在
ready
回调中

不要使用
onXYZ
属性,而是通过jQuery连接处理程序。在这种情况下,我可能会选择委托处理程序:

var$j=jQuery.noConflict();
$j(文档).ready(函数(){
var-rowNum=0;
//用于添加的直接处理程序(因为您只有
//一个按钮,它已经在那里)
$j(“.add”)。在(“单击”,函数(){
var row='

; $j(“#itemRows”).append(row); }); //用于删除的委托处理程序(当您添加这些 //(动态) $j(“#itemRows”)。在(“.click”,“.delete”,function()上{ $j(this).最近('p').remove(); }); });
onXYZ
属性处理程序调用的函数必须是全局函数。您的函数不是全局函数,因为它们嵌套在
ready
回调中

不要使用
onXYZ
属性,而是通过jQuery连接处理程序。在这种情况下,我可能会选择委托处理程序:

var$j=jQuery.noConflict();
$j(文档).ready(函数(){
var-rowNum=0;
//用于添加的直接处理程序(因为您只有
//一个按钮,它已经在那里)
$j(“.add”)。在(“单击”,函数(){
var row='

; $j(“#itemRows”).append(row); }); //用于删除的委托处理程序(当您添加这些 //(动态) $j(“#itemRows”)。在(“.click”,“.delete”,function()上{ $j(this).最近('p').remove(); }); });
onXYZ
属性处理程序调用的函数必须是全局函数。您的函数不是全局函数,因为它们嵌套在
ready
回调中

不要使用
onXYZ
属性,而是通过jQuery连接处理程序。在这种情况下,我可能会选择委托处理程序:

var$j=jQuery.noConflict();
$j(文档).ready(函数(){
var-rowNum=0;
//用于添加的直接处理程序(因为您只有
//一个按钮,它已经在那里)
$j(“.add”)。在(“单击”,函数(){
var row='

; $j(“#itemRows”).append(row); }); //用于删除的委托处理程序(当您添加这些 //(动态) $j(“#itemRows”)。在(“.click”,“.delete”,function()上{ $j(this).最近('p').remove(); }); });
onXYZ
属性处理程序调用的函数必须是全局函数。您的函数不是全局函数,因为它们嵌套在
ready
回调中

不要使用
onXYZ
属性,而是通过jQuery连接处理程序。在这种情况下,我可能会选择委托处理程序:

var$j=jQuery.noConflict();
$j(文档).ready(函数(){
var-rowNum=0;
//用于添加的直接处理程序(因为您只有
//一个按钮,它已经在那里)
$j(“.add”)。在(“单击”,函数(){
var row='

; $j(“#itemRows”).append(row); }); //用于删除的委托处理程序(当您添加这些 //(动态) $j(“#itemRows”)。在(“.click”,“.delete”,function()上{ $j(this).最近('p').remove(); }); });


我得到的错误是
类型错误:$j不是函数
我得到的错误是
类型错误:$j不是函数
我得到的错误是
类型错误:$j不是函数
类型错误:$j不是函数
$j(文档)。就绪(函数($){
在开始时,您仍然可以在
ready
函数的闭包(可以命名,顺便说一句)参数中使用
$
。@laruiss:实际上,有大约20种方法可以编写上述内容。通过使用
$j(document).ready(函数($){
在开始时,您仍然可以在闭包中使用
$
ready
函数的参数($){
。@laruiss:事实上,有大约20种方法可以编写上述内容。通过使用
$j(document).ready(函数($){
在开始时,您仍然可以在闭包内部使用
$
(可以命名为,btw)
ready
函数的参数。@laruiss:事实上,有大约20种方法可以编写上述内容。通过使用
$j(document).ready(函数($){
在开始时,您仍然可以在闭包内使用
$
(可以命名,顺便说一句)
ready
函数的参数。@laruiss:实际上,有大约20种方法可以编写上述内容。
var $j = jQuery.noConflict();
$j(document).ready(function () {
    var rowNum = 0;

    function addRow(frm) {
        rowNum++;
        var row = '<p id="rowNum' + rowNum + '"><input type="text" name="qty[]" size="4" value=""> <input type="button" value="-" onclick="removeRow(' + rowNum + ');"></p>';
        $j('#itemRows').append(row);
    }

    function removeRow(rnum) {
        $j('#rowNum' + rnum).remove();
    }
});
<input onclick="addRow(this.form);" type="button" value="Add Row" />