我正在尝试将 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));
});
但是,这似乎是一种过于复杂的方法,因此必须有更好的方法。也许我可以更改现有函数的参数,然后再次调用该函数?如果这是要走的路,如何确保注入的代码确实有效?