我定义了以下功能:
function _getUserMatches(url, mDist, ui) {
var dataString = 'dist=' + mDist;
var optionsHTML = 'Current Option: ' + mDist + '<br />';
optionsHTML += 'Other Options:';
optionsHTML += ' 2 <input type="radio" name="dist" id="dist" value="2" /> |';
optionsHTML += ' 5 <input type="radio" name="dist" id="dist" value="5" />';
$(ui.panel).append(optionsHTML);
$.ajax({
type: 'GET',
url: url,
data: dataString,
dataType: 'xml',
cache: false,
success: function(xml) {
$(xml).find('waypoint').each(function() {
var uid = $(this).attr('uid');
var dist = $(this).attr('dist');
var html = $('<div class="items" id="match_'+uid+'"></div>')
.html('<span class="search item" id="uid">' + uid + '</span>')
.append('<span class="search item" id="dist">' + dist + '</span>')
$(ui.panel).append(html);
});
}
});
}
请注意.ajax()调用,我正在向(tab)面板添加一些无线电输入。我怎样才能做到这一点,当用户选择其中一个选项时,它再次调用同一个函数,但是选择了它们的值(然后再次更新相同的ui.panel)
因此,如果最初使用_getUserMatches('test.php',1,ui)调用该函数;然后用户选择收音机4,它必须重新加载相同的功能但这次用4而不是1,因此_getUserMatches('test.php',4,ui);
test.php脚本根据设置的数字返回SQL记录。
有意义吗?
答案 0 :(得分:0)
这样的东西?
var firstTime = true;
function _getUserMatches(url, mDist, ui) {
...
$(ui.panel).append(optionsHTML);
if (firstTime) {
firstTime = false;
$('input[name="dist"]').click(function() { _getUserMatches(url, this.value, ui); });
}
...
}
此外,与您的问题无关,但您的单选按钮具有相同的ID。确保为所有元素提供唯一ID。
答案 1 :(得分:0)
因为你生成那些radiobutton,他们不会响应.click,因为从未附加事件, 正如卡萨布兰卡所说,你需要有不同的id,因此如果需要分组,就要使用类。
$('input[name="dist"]').live("click", function(){
_getUserMatches(url, $(this).val(), ui);
});
会更有效,因为click事件将被添加到dom加载后生成的所有元素。