我有一个函数可以隐藏或显示具有给定类名的元素:
$.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 面板将显示或隐藏。但是,当我更改选择了哪个单选按钮时,该函数似乎没有被正确调用,当我将 change() 行修改为这样时它也不起作用:
$('input:radio[name=question1]').change($.fn.questionDetails('question1', 'yes'));
我希望能够说“在页面加载时以及给定的单选按钮组更改时使用这些参数调用此函数”,并且重复次数最少。解决此问题的最佳方法是什么?我对 jQuery 比较陌生,所以我可能从一开始就以“错误”的方式做事。
编辑:最初应该提到这一点 - 我使用的是 jQuery 1.7.1。