Javascript-JQuery-Kendo-为什么我的函数要执行
嗨,我对JS有点陌生,我正试图弄明白为什么我会有意想不到的行为。 我正试图定义一些函数并连接一些按钮,但页面加载时会触发一些事件,我无法判断是什么决定它是否会触发,更重要的是,如何停止它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
//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() });
});