Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自定义函数错误-“;“未定义”;_Javascript_Jquery - Fatal编程技术网

Javascript 自定义函数错误-“;“未定义”;

Javascript 自定义函数错误-“;“未定义”;,javascript,jquery,Javascript,Jquery,我有以下Javascript代码: $('td:eq(2)', nRow).html('<a class="critical" href="#" OnClick="toAjax(\''+aData[1]+'\', \''+aData[2]+'\');">'+aData[3]+'</a>'); $('td:eq(2)”,nRow.html(“”); 我在Firebug中收到以下错误消息 toAjax没有定义 我的职能: $(document).ready(fun

我有以下Javascript代码:

$('td:eq(2)', nRow).html('<a class="critical" href="#" OnClick="toAjax(\''+aData[1]+'\', \''+aData[2]+'\');">'+aData[3]+'</a>');
$('td:eq(2)”,nRow.html(“”);
我在Firebug中收到以下错误消息

toAjax没有定义

我的职能:

    $(document).ready(function() {

        oTable = $('.statisticsTable').dataTable({

                "bJQueryUI" : true,

                "iDisplayLength" :50,

                "sAjaxSource": 'arrays.txt',

                "aoColumns"   : [{ "bSearchable": true, "bVisible": false },null, null, null, null, null,null,null,null,null,null],

                "fnRowCallback" : function(nRow, aData, iDisplayIndex) {

                    if (aData[3] == "1") {
                        $('td:eq(2)', nRow).html('<a class="critical" href="#" OnClick="toAjax(\''+aData[1]+'\', \''+aData[2]+'\');">'+aData[3]+'</a>');

                        } 

                    else if

                    (aData[4] == 123) {
                        $('td:eq(3)', nRow).html( '<a class="critical" href="serverID='+aData[0]+'&db='+aData[1]+'&task=Workload'+'">'+aData[2]+'<span class="highcharts"></span></a>' ).attr("class","kritikal");



                    } 

                    else if

                    (aData[3] >1) {
                        $('td:eq(3)', nRow).html( '<a id="ajax_call" class="critical" href="#">'+aData[3]+'<span class="highcharts"></span></a>' );

                        } 

                    return nRow;
                },


            } );


        function toAjax( server, db )
        {
            $.ajax({
                type: "POST",
                url: "someurl.php",
                data: "server=" + server + "&db=" + db,
                success: function(msg){
                    alert( "Data Saved: " + msg );
                }
            });
        }


    }); 
$(文档).ready(函数(){
oTable=$('.statisticsTable').dataTable({
“bJQueryUI”:没错,
“iDisplayLength”:50,
“sAjaxSource”:“arrays.txt”,
“aoColumns”:[{“bSearchable”:true,“bVisible”:false},null,null,null,null,null,null,null,null,null,null,null,null],
“fnRowCallback”:函数(nRow、aData、iDisplayIndex){
如果(数据[3]=“1”){
$('td:eq(2)”,nRow.html(“”);
} 
否则如果
(数据[4]==123){
$('td:eq(3)”,nRow).html(''.attr(“class”,“kritikal”);
} 
否则如果
(aData[3]>1){
$('td:eq(3)”,nRow.html(“”);
} 
返回nRow;
},
} );
函数toAjax(服务器,数据库)
{
$.ajax({
类型:“POST”,
url:“someurl.php”,
数据:“server=“+server+”&db=“+db,
成功:功能(msg){
警报(“保存的数据:“+msg”);
}
});
}
}); 
我可以实现这一点(一个简化的示例):


1.
1.
1.
$(文档).ready(函数(){
变量aData=[1,2,3,4];
$('td:eq(2)')
.html(“”)
.儿童(‘a.critical’)
。单击(函数(){
toAjax(aData[1],aData[2]);
});
});
函数toAjax(服务器,数据库)
{
日志(服务器,数据库);
返回false;
}

注意在添加html之后如何添加
单击
处理程序。这使得添加处理程序比使用内联文本更简洁

EDIT-看到您的编辑后,下面是您的
toAjax()
函数“未定义”的原因


另外,我会检查以确保
toAjax()
已声明且不在函数范围内(例如,
$(document).ready()
块中没有该函数)。

toAjax函数中定义的“id”和“name”变量在哪里?确保
函数toAjax(…)
在您的
OnClick=”“
属性中使用它之前已声明。您能再显示一些代码吗?您在哪里声明此函数?如果它位于
document.ready
处理程序中,则它将仅位于该函数的本地。但是为什么要这样创建HTML呢?如果使用jQuery,请正确使用它并将事件处理程序附加到jQuery中。只需使用jQuery
.bind()
添加处理程序,就可以在语法方面真正帮助自己。添加元素后单击()
处理程序,而不是在添加元素时单击内联处理程序。
<table>
    <tbody>
        <tr>
            <td>1</td>
            <td>1</td>
            <td>1</td>
        </tr>
    </tbody>
</table>

$(document).ready(function(){
    var aData = [1,2,3,4];
    $('td:eq(2)')
        .html('<a class="critical" href="#">'+aData[3]+'</a>')
        .children('a.critical')
            .click(function(){
                toAjax(aData[1],aData[2]);
            });
});

function toAjax( server, db )
{
    console.log(server, db);
    return false;
}