jQuery - 如何使这个javascript函数全局化,以便其他函数可以访问它
jQuery - How to make this javascript function global so other function can access it?
我有一个示例代码块,它现在重复了很多次。
$(function(loadDatabyClickA){
$('button').live('click', function(){
selectedAgeType = $(this).attr('value');
var x = {};
x.data = $('a').attr("data"); //selected item in tree (.liselected)
x.command = $('a').attr("cmd");
x.option = "x";
x.sessionid = docCookies.getItem("sessionid");
x.ageType = selectedAgeType;
x.showData = showUnderlyingData;
var action = function(result, status) {
var x_list = "";
$.each(result, function(i, val){
x_list += "<li><h3>"+val.xtitle+"</h3></li>";
});
$('#x_view').append(x_list);
};
$.post("jsoncommand", JSON.stringify(chart), action)
.error(function(){
alert('error');
});
})
})
如何提取此块,以便可以从另一个函数访问它?也许喜欢使用.extend()
?此块由其他函数使用,如下所示:
$(function(loadDatabyClickB){
$('button2').live('click', function(){
selectedAgeType = $(this).attr('value');
var y = {};
y.data = $('a').attr("data"); //selected item in tree (.liselected)
y.command = $('a').attr("cmd");
y.option = "y";
y.sessionid = docCookies.getItem("sessionid");
y.ageType = selectedAgeType;
y.showData = showUnderlyingData;
var action = function(result, status) {
var y_list = "";
$.each(result, function(i, val){
y_list += "<li><h3>"+val.ytitle+"</h3></li>";
});
$('#y_view').append(y_list);
};
$.post("jsoncommand", JSON.stringify(y), action)
.error(function(){
alert('error');
});
})
})
你们可以给我看一个如何做到这一点的提示,因为我没有头绪。我会自己简化它。提前感谢您的帮助!
创建一个函数,以基于您传入的"视图"生成单击处理程序。
function getButtonClickHandler(view) {
return function () {
selectedAgeType = $(this).attr('value');
var y = {};
y.data = $('a').attr("data"); //selected item in tree (.liselected)
y.command = $('a').attr("cmd");
y.option = view;
y.sessionid = docCookies.getItem("sessionid");
y.ageType = selectedAgeType;
y.showData = showUnderlyingData;
var action = function(result, status) {
var y_list = "";
$.each(result, function(i, val){
y_list += "<li><h3>" + val[view + 'title'] + "</h3></li>";
});
$('#' + view + '_view').append(y_list);
};
$.post("jsoncommand", JSON.stringify(y), action)
.error(function(){
alert('error');
});
}
}
$(function () {
$('button').on('click', getButtonClickHandler('y'));
$('button2').on('click', getButtonClickHandler('x'));
});
创建自己的类并从类调用函数
var youClass = {
functionName : function() {
selectedAgeType = $(this).attr('value');
var x = {};
x.data = $('a').attr("data"); //selected item in tree (.liselected)
x.command = $('a').attr("cmd");
x.option = "x";
x.sessionid = docCookies.getItem("sessionid");
x.ageType = selectedAgeType;
x.showData = showUnderlyingData;
var action = function(result, status) {
var x_list = "";
$.each(result, function(i, val){
x_list += "<li><h3>"+val.xtitle+"</h3></li>";
});
$('#x_view').append(x_list);
};
$.post("jsoncommand", JSON.stringify(chart), action)
.error(function(){
alert('error');
});
}
}
//call your function
$('button').live('click', function(){
youClass.functionName(parameter);
})
试试这个:
window.bindClick = function(selector, option, view) {
view = view || '#' + option + '_view';
$(document).on('click', selector, function(){
selectedAgeType = $(this).attr('value');
var x = {};
x.data = $('a').attr("data"); //selected item in tree (.liselected)
x.command = $('a').attr("cmd");
x.option = option;
x.sessionid = docCookies.getItem("sessionid");
x.ageType = selectedAgeType;
x.showData = showUnderlyingData;
var action = function(result, status) {
var list = "";
$.each(result, function(i, val){
list += "<li><h3>"+val[option+'title']+"</h3></li>";
});
$(view).append(list);
};
$.post("jsoncommand", JSON.stringify(chart), action)
.error(function(){
alert('error');
});
})
})
以及从代码中的任何位置:
bindClick('#button', 'x', '#x_view');
bindClick('#button2', 'y', '#y_view');
或者只是
bindClick('#button, #button2', 'x');
相关文章:
- Jquery未定义函数正在停止其他操作
- 执行php函数的onclick事件的其他替代方案
- 如何在.js函数中检索来自其他模板的表单的目标值
- 对其他函数使用匿名函数's参数
- 创建要在其他函数中使用的全局变量
- 调试一个简单的jQuery函数;想知道是否与其他代码冲突
- 在Meteor中如何将数据从函数内部复制到其他模板
- 在Jquery调用之间添加其他函数
- 使用一个Javascript函数提交多个表单可以在FF中工作,而不需要其他浏览器
- Mocking console.log()/MOCHA测试框架中的任何其他函数
- 如何从ipify函数返回ip地址,以便在其他函数中使用
- 如果没有其他函数链接到promise,则默认行为
- Javascript创建函数,以便在其他函数之间共享变量
- AngularJS:如何与其他控制器共享作用域函数和变量
- Firefox扩展开发:如何在内容脚本中创建一个全局函数,以便其他加载的脚本文件可以访问它
- 使通过函数加载的JSON可用于其他函数
- 如何使用 javascript 函数取决于是否其他
- 如何在 JavaScript 中访问函数中的其他属性值作为对象属性值
- 有没有办法将其他参数传递给 scrollTarget 回调函数
- 如何在创建的字段上应用 .change 函数 b 其他字段的 .change 函数