我正在尝试传递最后一个由openURL方法返回的ID变量。这是代码:
" + ": function() {
formCount++;
$( "#form tbody" ).append('<tr class="test"><td><input type="text" id="requirement'+formCount+'" class="text ui-widget-content ui-corner-all" /></td><td><input type="text" id="objects'+formCount+'" value="" class="text ui-widget-content ui-corner-all" /></td><td><input type="text" id="andor'+formCount+'" value="" class="text ui-widget-content ui-corner-all" /></td><td><input type="text" id="qty'+formCount+'" value="" class="text ui-widget-content ui-corner-all" /></td><td><div id="del'+formCount+'"><img src="themes/balance/images/delete_button.png" style="cursor:pointer; margin-left: 15px; margin-bottom: 5px;" alt="Delete" /></div></td></tr>');
/* Delete requirement from database */
$("#del"+formCount).click(function(param) {
$(this).parent().parent().remove(); // removes whole row in layout
var ReqID = ?????;
var query = '.requirements.deleteRequirement/'+gameID+'/'+ReqID+'';
openURL(url+query, function(param) { });
//alert(url+query);
});
/* Add requirement to database */
var query = '.requirements.createRequirement/'+gameID+'/Location/'+id+'/PLAYER_HAS_ITEM/1/1/1/1';
openURL(url+query, function(param) {
var CaughtID = new Boolean(param.lastID);
if(CaughtID.valueOf()) {
$(".test").append('<input type="hidden" id="reqID'+formCount+'" value="'+param.lastID+'" />')
}
param.lastID = 0; // important! Prevent to keep the last value in the object after add (check in DOM ;) )
});
}
我的问题是将param.lastID传递给 ReqID 。我尝试了$(“#reqID”+ formCount).val()但它返回undefined,可能是因为异步函数。我的问题是,如何解决这个问题?
答案 0 :(得分:0)
事件处理程序的唯一参数是事件对象。
如果我正确理解您的代码,您将尝试获取创建对象时设置的值。您必须从值中提取数据:
var ReqID = $(this).val()
这将为您提供一个字符串,您可以在代码中使用它。
编辑:
"#del" + formCount
在哪里定义?你可能需要一个不同的选择器......也许是这样的:
var ReqID = $('reqID' + formCount).val();