/*
职业选择
Date:2016-09-27
Author:Mr.Luo
settings 参数说明
-----
data:填充下拉框的数据;
nameId:所选择值附加到的文本框或其它容器Id
maxCount:允许最大选择数量
------------------------------ */
$.fn.positionSelect = function (settings) { alert(settings.nameId);
if (this.length < 1) { return; };
// 默认值
settings = $.extend({
containerId: null,
className: null,
nameId: null,
required: true,
maxCount: 5,
onConfirm: null
}, settings);
var box_obj = $(this);
var container = $("#" + settings.containerId);
var num = settings.containerId;
var title = "
选择职业(最多选择" + settings.maxCount + "项)  
";
var selectedResult = "";
init(settings);
function init(setting) {
if ($("body #" + num + "_bg").length <= 0) {
$("body").append("");
}
if (setting.className != null) {
container.addClass(setting.className);
}
var data = eval("(" + positiondata + ")");
container.html("");
if ($.trim(container.html()) == "") {
container.append(title);
container.append(selectedResult);
container.append("");
var datalist = $("#" + num + "_datalist");
datalist.append("");
var firstMenu = datalist.find("#firstMenu");
firstMenu.append("");
$.each(data.positionlist, function (i, obj) { // 循环第一级
$(firstMenu).find("ul").append("" + obj.p + "");
});
if (datalist.find("div[class='sub-menu']").length <= 0) {
datalist.append("");
}
var secondMenu = datalist.find("#secondMenu");
// 第一级菜单鼠标悬浮事件,弹出二级菜单和三级菜单项
$("#" + num + "_datalist #firstMenu ul li").bind("mouseover", function () {
secondMenu.html("");
$("#" + num + "_datalist #firstMenu ul li").removeClass("sele");
$(this).addClass("sele");
var index = $(this).attr("name");
$.each(data.positionlist[index].c, function (j, item) {
secondMenu.append("
");
var dtItem = "" + item.n + "";
secondMenu.find("dl[id='dl_" + j + "']").append(dtItem);
secondMenu.find("dl[id='dl_" + j + "']").append("");
$.each(data.positionlist[index].c[j].a, function (m, dist) {
var threeMenu = "" + dist.s + "";
secondMenu.find("dl[id='dl_" + j + "'] dd[id='dd_" + j + "']").append(threeMenu);
});
});
//根据已选择的项,将相同的列表展示项添加样式
var resultItems = container.find("#ddResult_" + num + " a");
$.each(resultItems, function (n, ritem) {
var rid = $(ritem).attr("id").substr(2, $(ritem).attr("id").length);
secondMenu.find("a[id='" + rid + "']").addClass("sele");
});
// 列表项点击事件,选中则在结果容器中显示添加选中样式
secondMenu.find("a").bind("click", function () {
var selectedCount = container.find("#ddResult_" + num + " a").length - 1;
if ($(this).hasClass("sele")) {
$(this).removeClass("sele");
container.find("#ddResult_" + num).find("a[id='c_" + $(this).attr("id") + "']").remove();
}
else {
if (selectedCount >= setting.maxCount) {
container.find("#tip_" + num).html("你大爷的,没看到提示吗?最多只能选择" + setting.maxCount + "项!").css("color", "red");
setTimeout(function () {
container.find("#tip_" + num).empty();
}, 3000);
}
else {
$(this).addClass("sele");
container.find("#ddResult_" + num + " #btnSure_" + num).before("" + $.trim($(this).html()) + "");
}
}
// 结构容器中选中项点击事件,移除并将列表中的选中样式取消
container.find("#ddResult_" + num + " a").bind("click", function () {
var rid = $(this).attr("id");
if (rid != "btnSure_" + num) {
var sid = rid.substr(2, rid.length);
$(this).remove();
secondMenu.find("a[id='" + sid + "']").removeClass("sele");
}
});
});
});
// 默认显示第一级
$(firstMenu).find("ul li:first").addClass("sele").trigger("mouseover");
// 关闭选择框
container.find(".title a").bind("click", function () {
container.hide();
$("#" + num + "_bg").hide();
});
// 确定
container.find("#ddResult_" + num + " a[id='btnSure_" + num + "']").click(function () {
var selectedItems = container.find("#ddResult_" + num + " a[id!='btnSure_" + num + "']");
var results = "";
$.each(selectedItems, function (i, item) {
results += $.trim($(item).html()) + ",";
});
if (results.length > 0) {
results = results.substr(0, results.length - 1);
}
var type= $("#" +setting.nameId);
alert(setting.nameId);
if (type.attr("type") == "text") {
type.val(results);
}
else{
type.html(results);
}
container.hide();
$("#" + num + "_bg").hide();
});
}
container.show();
$("#" + num + "_bg").show();
}
};