<script type="text/javascript>
(function($, win) {
function mySettingsInitJS () {
var self = this;
var opts = {
'params' : "userId=" + userId;
};
self.init = function() {
self.initUnlinkAction();
};
self.initbtnAction = function() {
$('#Btn').click(self.btnAction);
};
self.btnAction = function(e) {
if(e) { e.preventDefault(); }
jQuery.post(
'http://abc/rest/PostRequest',
opts.params, function(data) {
alert('This worked!');
}, "json");
};
}
function win.MyFilesSettingsInitJS = new MyFilesSettingsInitJS();
}(jQuery, window));
</script>
我在速度模板页面中有这个脚本,还有一个Btn。这基本上是一个花哨的链接。我也确定服务器端的其余API工作正常。但不知怎的,我的java脚本函数没有被调用。有人可以帮帮我吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
您的网址值必须是字符串...添加引号
答案 2 :(得分:0)
您应该使用浏览器中提供的一些开发人员工具。大多数浏览器至少有一个错误控制台,可以显示任何JS错误。例如,此代码有几个语法错误:
var opts = { 'params' : "userId=" + userId; };
中,当您定义对象文字(a.k.a.地图或字典)时,使用;
结束一行是违法的。userId
定义在哪里?拥有全局变量是一种不好的做法,因此如果userId
是另一个脚本中定义的全局变量,则应该重构代码function win.MyFilesSettingsInitJS = new MyFilesSettingsInitJS();
是非法的,因为您要向对象添加属性,而不是声明函数或变量。只需使用win.MyFilesSettingsInitJS = new MyFilesSettingsInitJS();
mySettingsInitJS
,而不是MyFilesSettingsInitJS
(但是这个函数实际上可以在其他地方定义,我没有完整的代码)