我有这个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>');
}
答案 0 :(得分:2)
如果要在另一个函数中使用leString
变量,则需要在函数外部将该变量定义为global variable
。
var leString = "";
答案 1 :(得分: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>');
}
P.S。不要使用live()
,不推荐使用。请改用on()
答案 2 :(得分:0)
您需要在live() - 函数之外定义该变量。
var leString;
$(".noar").live("click",function() {
leString = $(this).attr("searchkey"); ... });
此外,jQuery 1.7中不推荐使用jquery .live()方法,并在1.9中删除了!您应该将其替换为:
$(document).on('click','.noar',function(){...});