使用sexy-combo與國家,另一個與城市。每當用戶選擇一個國家時,我都會使用Ajax填充第二個組合框,並且不進行任何回發。jQuery刷新SexyCombo級聯輸入
問題是,性感組合使用我的html選擇僅在頁面加載時第一次呈現漂亮的組合框。當我更新城市的HTML選項中的項目時,它不會被刷新,所以沒有值...
你知道我必須調用什麼函數來刷新組合框,就像它會我做回傳時會刷新嗎?
任何提示都非常受歡迎!非常感謝。
使用sexy-combo與國家,另一個與城市。每當用戶選擇一個國家時,我都會使用Ajax填充第二個組合框,並且不進行任何回發。jQuery刷新SexyCombo級聯輸入
問題是,性感組合使用我的html選擇僅在頁面加載時第一次呈現漂亮的組合框。當我更新城市的HTML選項中的項目時,它不會被刷新,所以沒有值...
你知道我必須調用什麼函數來刷新組合框,就像它會我做回傳時會刷新嗎?
任何提示都非常受歡迎!非常感謝。
什麼,我缺的是調用這個函數:
$.sexyCombo.changeOptions($('#cities')[0]);
這強制城市的性感combobox被渲染後,我c掛起了使用javascript綁定的html選擇控件的選項。
@Sarzniak和@Majid:非常感謝你的回答,但這不是我想要的,也許我沒有把自己弄清楚。
在這種情況下,你應該接受你自己的回答:) – jensgram
嘗試使用jQuery的'live'綁定功能。 當你刷新你的物品時,那麼這些事件不會再綁定到你的物體上。
例如
$("myItem").live("click",function(){ codeHere });
這也結合了 'click' 事件到你的Ajax創建的項目。
如果您的舊代碼如下所示:
$(document).ready(function() {
$('.sexify').sexify({options});
$('select[name="countries"]').change(function() {
var selected_country = $(this).val();
$('select[name="cities"]').load('cities.php?country=' + selected_country);
});
});
那麼所有你需要的是增加一個功能,像這樣.load
的回調:
$(document).ready(function() {
$('.sexify').sexify({options});
$('select[name="countries"]').change(function() {
var selected_country = $(this).val();
$('select[name="cities"]').load('cities.php?country=' + selected_country, function() {
$(this).sexify({options});
});
});
});
在腳本中創建另一種方法,例如,下面的 「changeOptions」:
custom_update: function($select) {
$select = $($select);
$select.each(function() {
if ("SELECT" != this.tagName.toUpperCase()) {
return;
}
var my_text = $("#"+ this.id + " option:selected").text();
var my_val = $("#"+ this.id + " option:selected").val();
var $this = $(this);
var $wrapper = $this.parent();
var $input = $wrapper.find("input[type='text']");
var $listWrapper = $wrapper.find("ul").parent();
$listWrapper.removeClass("visible").
addClass("invisible");
$wrapper.css("zIndex", "0");
$listWrapper.css("zIndex", "99999");
//$input.val("");
$wrapper.data("sc:optionsChanged", "yes");
var $selectbox = $this;
$selectbox.parent().find("input[type='text']").val($selectbox.find("option:eq(" + my_val + ")").text());
$selectbox.parent().data("sc:lastEvent", "click");
$selectbox.find("option:eq(" + my_val + ")").attr('selected','selected');
});
},
,並調用它像:
$.sexyCombo.custom_update($("#myselectlist"));
你可以放在一起演示頁?理想情況下,在[JS Fiddle](http://jsfiddle.net/)或[JS Bin](http://jsbin.com/)上,但如果沒有鏈接到您自己網站上的實時頁面,最少的,有幫助的,這樣我們就可以看到發生了什麼。 –