我有隐藏或显示与给定的类名元素的功能:附加定制的jQuery功能
$.fn.questionDetails = function(base_element, details_yes_no) {
var details_element = '.' + base_element + '_details';
var radio_element = '#' + base_element + '_' + details_yes_no;
if ($(radio_element).attr('checked')) {
$(details_element).show();
} else {
$(details_element).hide();
}
}
我要附加/绑定这个功能,所以它被称为与加载页面时的两个参数以及给定单选按钮组更改时的两个参数。目前我使用下面的代码来实现:
$(function() {
// $.fn.questionDetails defined here, in same scope
$.fn.questionDetails('question1', 'yes');
$('input:radio[name=question1]').change().questionDetails('question1', 'yes');
}
第一个函数调用工作正常 - 当页面加载question1_details面板要么显示或隐藏。然而,该功能似乎并不当我改变其单选按钮来选择要正确调用,也不当我修改的变化()线是这个它的工作:
$('input:radio[name=question1]').change($.fn.questionDetails('question1', 'yes'));
我希望能够说“使用这些参数调用此函数,当页面加载时和当给定的单选按钮组发生更改时”,重复次数最少。什么是最好的方式去做这件事?我对jQuery相对来说比较陌生,所以有可能我从一开始就以'错误'的方式做事。
编辑:本来应该提到这个 - 我使用jQuery 1.7.1。
谢谢,这似乎工作。这感觉有点浪费来定义一个匿名函数调用另一个函数,而不是单指$ .fn.questionDetails与参数,但我不认为它会在这个特定的项目太多关系。 – pwaring 2012-08-06 10:49:51