jQuery 関数を要素に動的に挿入しようとしています。関数のパラメーターが変更される可能性があるため、これを動的に行います。
、values
、プロパティmin
、および およびイベントmax
に関連付けられた関数パラメータは動的です。したがって、関数全体を動的に挿入すると思いましたが、現在は文字列として挿入しています。これは明らかにテキストを挿入するだけで、コードは機能しません。stop
slide
$.ajax({
type: "GET",
url: "/service.svc/getshopitems/?newurl=" + parseCorrectURL(newURL),
data: "",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
//here I'm setting all variables that are used as values in the function to be inserted
$('.left_nav').append('$(function () {$("#slider_pricefilter").slider({range: true,values: [' + pricemin_query + ', ' + pricemax_query + '],min:' + pricemin + ',max: ' + pricemax
+ ',stop: function(event, ui){updateResults("price",ui.values[0]+"-"+ui.values[1]);},slide: function (event, ui) {$("#amount").val("' + currencySign + '"+ui.values[0] + " - ' + currencySign + '" + ui.values[1]);}});$("#amount").val("' + currencySign + '"+$("#slider_pricefilter").slider("values", 0) + " - ' + currencySign + '" + $("#slider_pricefilter").slider("values", 1));});');
}
});
これは、挿入する必要がある実際の関数です。
$(function () {
$("#slider_pricefilter").slider({
range: true,
values: [12, 24],
min: 12,
max: 24,
stop: function (event, ui) {
updateResults("price", ui.values[0] + "-" + ui.values[1]);
},
slide: function (event, ui) {
$("#amount").val("€" + ui.values[0] + " - €" + ui.values[1]);
}
});
$("#amount").val("€" + $("#slider_pricefilter").slider("values", 0) + " - €" + $("#slider_pricefilter").slider("values", 1));
});
ただし、これはアプローチが複雑すぎるように思われるため、より良い方法が必要です。おそらく、既存の関数のパラメーターを変更してから、その関数を再度呼び出すことはできますか? これが進むべき道である場合、挿入されたコードが実際に機能することを確認するにはどうすればよいですか?