1
JSON 파일 변수 값을 사용하여 위젯에 대한 옵션을 설정하고 싶습니까? json 파일을 클라이언트 측에 전달하는 방법은 무엇입니까? jQuery 위젯에서 옵션을 설정하는 방법 서버 측 변수 (JSON 파일)의 값을 가진 팩토리
코드
는 달성 할_getCreateOptions
함수를 사용하는 것이다
jQueryUI Widget Factory
<script>
$(function() {
$.widget("custom.colorize", {
// ***Need to pass option values over here***
options: {
red: 255,
green: 0,
blue: 0,
change: null,
random: null
},
_create: function() {
this.element
// add a class for theming
.addClass("custom-colorize")
// prevent double click to select text
.disableSelection();
this.changer = $("<button>", {
text: "change",
"class": "custom-colorize-changer"
})
.appendTo(this.element)
.button();
this._on(this.changer, {
click: "random"
});
this._refresh();
},
_refresh: function() {
this.element.css("background-color", "rgb(" +
this.options.red +"," +
this.options.green + "," +
this.options.blue + ")"
);
this._trigger("change");
},
// ***And in the random function as well***
random: function(event) {
var colors = {
red: Math.floor(Math.random() * 256),
green: Math.floor(Math.random() * 256),
blue: Math.floor(Math.random() * 256)
};
if (this._trigger("random", event, colors) !== false) {
this.option(colors);
}
},
_destroy: function() {
// remove generated elements
this.changer.remove();
this.element
.removeClass("custom-colorize")
.enableSelection()
.css("background-color", "transparent");
},
_setOptions: function() {
this._superApply(arguments);
this._refresh();
},
_setOption: function(key, value) {
if (/red|green|blue/.test(key) && (value < 0 || value > 255)) {
return;
}
this._super(key, value);
}
});
$("#my-widget1").colorize();
$("#my-widget2").colorize({
red: 60,
blue: 60
});
$("#my-widget3").colorize({
green: 128,
random: function(event, ui) {
return ui.green > 128;
}
});
$("#disable").click(function() {
if ($(":custom-colorize").colorize("option", "disabled")) {
$(":custom-colorize").colorize("enable");
} else {
$(":custom-colorize").colorize("disable");
}
});
$("#black").click(function() {
$(":custom-colorize").colorize("option", {
red: 0,
green: 0,
blue: 0
});
});
});
</script>
</head>