我在代码中的几个地方叫campusInfo(id)
。
在campusInfo(id)
函数内部,我正在调用campusInfo_2(HouseID)
。
我正在呼叫campusInfo(id)
的实例之一是在div的onclick上。
在这种情况下,我不希望调用CampusInfo_2(HouseID)。
这是campusInfo(id)javascript函数,它调用campusInfo_2(HouseID)
//campus information
function campusInfo(id) {
fetch(`https://api/` + id)
.then(r => r.json())
.then(r => {
const mapClassToResponse = {
'.campus-name': 'name',
'.program-levels-values:eq(4)': 'annualTuition'
};
var HouseID = r['Houses'][0]['HouseID'];
Object.keys(mapClassToResponse).map(k => {
$(k).html(r[mapClassToResponse[k]]);
});
//formatting numbers to have commas
$(".program-levels-values:eq(4)").digits();
$(".campus-number:eq(0)").digits();
$(".campus-number:eq(1)").digits();
//program-levels
$(r.programLevels).each(function (index, item) {
$('.program-levels-values:eq(0)').append(item.programLevel + ' ');
});
//institution control
if (r.isInstitutionControlPublic == false) {
$('.program-levels-values:eq(2)').html('Private');
} else {
$('.program-levels-values:eq(2)').html('Public');
}
campusInfo_2(HouseID);
}).catch(console.log);
};
这是我不希望调用CampusInfo_2(HouseID)的div
<div class="other-school" onclick="campusInfo(10)"><label
class="other-schools-list">Portland State University</label</div>
到目前为止,这是我尝试过的操作,但在控制台中说的是该元素未定义。
if(document.getElementsByClassName('other-school').clicked == false)
{
campusInfo_2(HouseID);
}
答案 0 :(得分:0)
一种建议的解决方案是提供一个额外的论点。
<div class="other-school" onclick="campusInfo(10, false)">
然后您的方法定义将更改为:
function campusInfo(id, skipSecondCampusInfo) {
如果仅将其传递给内联绑定,则在所有其他调用上将为undefined
。因此,您的通话可能会被以下内容包围:
if (skipSecondCampusInfo !== false) campusInfo_2(HouseID);
在这种情况下,如果未定义,它将执行它。否则,如果为假,则不会。