1

この jQuery 部分があり、関数 (応答) で最初の関数から var lString を使用したいと考えています。私はいくつかのリターンを試しましたが、どれもうまくいきませんでした。

$(".noar").live("click",function() {
var leString = $(this).attr("searchkey");
$.ajax({
    url: rootDomain + "kunden/intent24/js/pz.json?callback=jsonp"+leString,
    dataType: 'jsonp',
    jsonpCallback: "jsonp"+leString,
    error: function(xhr, status, error) {
        alert(error);
    },
    success: function(size) { 
        jsonpParty(size);
        $("#lisize").show();
        $("#size").menuFlip();
    }
});
});

function jsonpParty(response){

var i,c = '<div class="fn_menu_title pointer"><span>Choose size</span></div><ul class="fn_menu">', opt = $('<li/>');

var menu = response.size;
alert(leString);


for (i=0; i < menu.length; i++){
    c += '<li><span class="pointer search_link guddi" searchkey="xdz'+leString+' xdz'+ menu[i].measure +'" id="'+[i]+'">' + menu[i].measure + '</span></li>';
}

$('#size').html(c+'</ul>');     
}
4

3 に答える 3

2

他の関数内で変数を使用する場合はleString、その変数global variableを関数外として定義する必要があります。

var leString = "";
于 2013-03-05T08:31:04.043 に答える
0

その変数をlive()関数の外部で定義する必要があります。

var leString;
$(".noar").live("click",function() { 
leString = $(this).attr("searchkey"); ... });

また、jquery .live()メソッドはjQuery 1.7で非推奨になり、1.9で削除されました。次のように置き換える必要があります。

$(document).on('click','.noar',function(){...});
于 2013-03-05T08:43:00.263 に答える
0

それを行う別の方法:

$(".noar").on("click",function() {
var leString = $(this).attr("searchkey");
$.ajax({
    url: rootDomain + "kunden/intent24/js/pz.json?callback=jsonp"+leString,
    dataType: 'jsonp',
    jsonpCallback: "jsonp"+leString,
    error: function(xhr, status, error) {
        alert(error);
    },
    success: function(size) { 
        jsonpParty(size,leString);
        $("#lisize").show();
        $("#size").menuFlip();
    }
});
});

function jsonpParty(response,leString){

var i,c = '<div class="fn_menu_title pointer"><span>Choose size</span></div><ul class="fn_menu">', opt = $('<li/>');

var menu = response.size;
alert(leString);


for (i=0; i < menu.length; i++){
    c += '<li><span class="pointer search_link guddi" searchkey="xdz'+leString+' xdz'+ menu[i].measure +'" id="'+[i]+'">' + menu[i].measure + '</span></li>';
}

$('#size').html(c+'</ul>');     
}

PS 使用live()しないでください。非推奨です。on()代わりに使用

于 2013-03-05T08:31:21.433 に答える