Javascript 多变量的js函数
因此,我有两个我经常使用的js变量:Javascript 多变量的js函数,javascript,Javascript,因此,我有两个我经常使用的js变量: var rhpp = jQuery(this).parents('.rhp'); var rhp_id = rhpp.data("pi"); 例如: function my_function_1 (){ jQuery(document).on('click', '.button_1', function (e) { var rhpp_1= jQuery(this).parents('.rhp'); var rhp_id_1 =
var rhpp = jQuery(this).parents('.rhp');
var rhp_id = rhpp.data("pi");
例如:
function my_function_1 (){
jQuery(document).on('click', '.button_1', function (e) {
var rhpp_1= jQuery(this).parents('.rhp');
var rhp_id_1 = rhpp_1.data("pi");
//do something
});
}
function my_function_2 (){
jQuery(document).on('click', '.button_2', function (e) {
var rhpp_2 = jQuery(this).parents('.rhp');
var rhp_id_2 = rhpp_2.data("pi");
//do something
});
}
function my_function_3 (){
jQuery(document).on('click', '.button_3', function (e) {
var rhpp_3 = jQuery(this).parents('.rhp');
var rhp_id_3 = rhpp_3.data("pi");
//do something
});
}
正因为如此,我想把它变成一个可以重用的函数:
function RHP_PARENT(a, b) {
var a = jQuery(this).parents('.rhp');
var b = a.data("pi");
}
然后,RHP_家长(“rhpp”,“RHP_id”)代码>
当然,这是不对的。我不太熟悉如何为变量创建函数
有人能给我看看吗
谢谢 您可以创建一个返回这两个值的函数
function getRhpParent(element) {
var rhpp = jQuery(element).parents('.rhp');
return {
rhpp: rhpp,
rhpp_id: rhpp.data("pi")
};
}
// Usage
var temp = getRhpParent(this);
var rhpp = temp.rhpp;
var rhp_id = temp.rhp_id;
你可以这样做:
function RHP_PARENT(that) {
var a = jQuery(that).parents('.rhp');
var b = a.data("pi");
return { parents: a, data: b };
}
这允许您编写:
var rhp_id_1 = RHP_PARENT(this).data;
您是否打算访问RHP\U父级之外的变量?
如果是这样,您应该在函数外部实例化a
和b
您是否打算将a
和b
作为RHP\U母公司的属性访问?
在这种情况下,您可能需要执行以下操作:
var RHP_PARENT = {
'a': (function(){
jQuery(this).parents('.rhp');
})(),
'b': (function(){
this.a.data("pi");
})()
}
基于您的问题,您的用例是什么并不完全清楚,因此很难制定一个单一的答案
编辑:
看起来你更新了你的问题,这里有两个可行的解决方案
下面的代码将在所有元素上循环,这些元素的类以“button”开头。这解决了同质用例的问题:
$("[class^='button']").each(function(){
$(this).click(function (e) {
var rhpp = jQuery(this).parents('.rhp');
var rhp_id = rhpp.data("pi");
//do something
});
})
下面的解决方案解决了一个更通用的用例,并且更加灵活。这里的优势在于,获取rhhp和rhp_id的业务逻辑被分解为助手函数,从而使其更易于重用。您也可以使用此
引用同一对象中的其他函数:
var my_functions = {
get_rhhp: function(el){
return jQuery(el).parents('.rhp');
},
get_rhp_id: function(rhhp){
return rhhp.data("pi");
},
"my_function_1": function(){
jQuery(document).on('click', '.button_1', function (e) {
var rhhp = get_rhhp();
var rhp_id = get_rhp_id(rhhp);
//do something
});
},
"my_function_2": function(){
jQuery(document).on('click', '.button_2', function (e) {
var rhhp = get_rhhp();
var rhp_id = get_rhp_id(rhhp);
//do something
});
},
"my_function_3": function(){
jQuery(document).on('click', '.button_3', function (e) {
var rhhp = get_rhhp();
var rhp_id = get_rhp_id(rhhp);
//do something
});
}
}
你能详细说明一下你使用这个函数的目的吗?“变量函数”是什么意思?你的意思是经常需要访问“pi”值吗?关键字this
的作用域是函数。创建一个工作代码的jsbin可能会有帮助,这样我们就可以看到它的意图了。我添加了三个函数来详细说明它。底线是,我想把这两个变量作为一个函数,所以我不需要在每个函数中重复它,这是我没有想到的。谢谢你的帮助!=)看起来有点不舒服。传递jQuery(this),而不是this。然后在函数中使用元素参数…感谢您的帮助!=)我一定要试一试!非常感谢。学到了一些新东西()