我从ajax中获取数据,如
更新
var a = document.createElement('a');
a.setAttribute('id', tr_job_room);
a.setAttribute('onclick', 'getGroupsData(this.id)');
var audioLength;
var ul_ul_li_a = document.createElement('a');
ul_ul_li_a.setAttribute('class', 'dropdown-toggle');
ul_ul_li_a.setAttribute('href', '#');
ul_ul_li_a.innerHTML = "Audios";
ul_ul_li_a.setAttribute('id', tr_job_room);
if (audioLength > 0) {
alert("audiolength"+audioLength);
$(ul_ul_li_a).on('click', function () {
alert(audioLength+"sdasds");
varid = this.id;
audiosPlay(varid);
scriptpanel();
getTxtData();
});
}
和ajax是:
// DISPLAY GROUPS DATA
function getGroupsData(arg) {
$.ajax(
{
type: "POST",
url: '@Url.Action("getGroupsData")',
dataType: "json",
mtype: "post",
data: { arg: arg },
async: true,
success: function (data) {
audioLengh = data.groups[0].audio.length;
audioDisplay(arg, data.groups[0].audio.length, data.groups[0].audio);
}
});
}
这是获取数据的正确方法吗?
我没有在if
块中获取audioLength值
有什么建议吗?
答案 0 :(得分:1)
您需要将if
放入点击事件中。无论如何都执行该函数,但将if语句放入函数中以确定是否应该运行任何其他函数:
$(ul_ul_li_a).on('click', function () {
alert("audiolength"+audioLength);
if (audioLength > 0) {
alert(audioLength+"sdasds");
varid = this.id;
audiosPlay(varid);
scriptpanel();
getTxtData();
}
});
我无法从您的代码中判断出来,但如果您在“Air”下动态生成子列表,则可能需要将on
更改为:
$(document).on('click', 'a.dropdown-toggle', function () {
<强>更新强>
我注意到在success
函数中,您的变量拼写为audioLengh
而不是audioLength
。