Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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-JQuery-Kendo-为什么我的函数要执行_Javascript_Jquery_Kendo Ui - Fatal编程技术网

Javascript-JQuery-Kendo-为什么我的函数要执行

Javascript-JQuery-Kendo-为什么我的函数要执行,javascript,jquery,kendo-ui,Javascript,Jquery,Kendo Ui,嗨,我对JS有点陌生,我正试图弄明白为什么我会有意想不到的行为。 我正试图定义一些函数并连接一些按钮,但页面加载时会触发一些事件,我无法判断是什么决定它是否会触发,更重要的是,如何停止它 //this one does not execute on page load var saveDataCallback = function(){ alert('Save Successful'); }; //this one executes on page load var a

嗨,我对JS有点陌生,我正试图弄明白为什么我会有意想不到的行为。 我正试图定义一些函数并连接一些按钮,但页面加载时会触发一些事件,我无法判断是什么决定它是否会触发,更重要的是,如何停止它

//this one does not execute on page load
var saveDataCallback = function(){
    alert('Save Successful');
};

//this one executes on page load        
var addFieldToForm = function(){
    alert('wtf mate');
};


$(document).ready(function(){
    //this one does not execute the alert when I load the page
    $("#showMePOTATOSALAD").on('click', function (){ alert(JSON.stringify(formDataObj)) });

    var dialog = $("#addToFormDialog");
    //this one does execute the dialog open when I load the page           
    $("#addToForm").on('click', function(){ dialog.data("kendoDialog").open() });
}
这就是问题所在

dialog.kendoDialog({
    title:'Add Field to Form',
    modal:true,
    width: 500,
    height: 350,
    content:"",
    actions:[
        {text: 'Cancel'},
        {text: 'Add', action: addFieldToForm() }
    ]   
});
改为

dialog.kendoDialog({
    title:'Add Field to Form',
    modal:true,
    width: 500,
    height: 350,
    **visible: false,**
    content:"",
    actions:[
        {text: 'Cancel'},
        {text: 'Add', action: **addFieldToForm** }
    ]   
});
提前谢谢

$(document).ready(function(){
    //this one does not execute the alert when I load the page
    $("#showMePOTATOSALAD").on('click', function (){ alert(JSON.stringify(formDataObj)) });

    var dialog = $("#addToFormDialog");
    //this one does execute the dialog open when I load the page           
    $("#addToForm").on('click', function(){ dialog.data("kendoDialog").open() });
}

这是正常的,当您单击ID=showMePOTATOSALAD的元素时会显示警报,当您单击ID=addToForm的元素时会显示对话框。

如注释中所述,您的
文档就绪
代码块缺少一个右括号

更改以下内容--

致:


页面上还有其他javascript吗?我猜一定是有别的东西触发了这些,正如你所发布的,什么都不应该触发;你错过了一个重要的机会。另外,请发布所有相关代码/片段。。。正如@icecream所提到的,一定是来自其他JS的干扰(如果不在该页面上,可能在您的include中?)页面上有很多JS。然而,页面上没有其他地方引用这些变量或元素。我已经确认addFieldToForm在使用断点加载页面之前执行。我知道了。这是对话框选项。我必须指定visible:false,并且回调赋值错误。我使用括号addFieldToForm(),而不仅仅是名称addFieldToForm@Rushikumar把你的评论放在括号里作为答案,我会把它标记为答案。你是对的,问题在于括号。这是预期的行为。问题是,除了click事件外,在加载页面时还执行了click open方法调用。
    $("#addToForm").on('click', function(){ dialog.data("kendoDialog").open() });
}
    $("#addToForm").on('click', function(){ dialog.data("kendoDialog").open() });
});