javascript - 当未单击特定 div 时,如何仅调用从另一个函数中调用的函数?
问题描述
我campusInfo(id)
在我的代码中调用了几个地方。campusInfo(id)
我正在调用的内部函数campusInfo_2(HouseID)
。
我正在调用的实例之一campusInfo(id)
是在 div 的 onclick 上。在这种情况下,我不想调用 CampusInfo_2(HouseID)。
这是调用 CampusInfo_2(HouseID) 的 CampusInfo(id) javascript 函数
//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);
}
解决方案
一个建议的解决方案是提供一个额外的论点。
<div class="other-school" onclick="campusInfo(10, false)">
然后您的方法定义将更改为:
function campusInfo(id, skipSecondCampusInfo) {
如果您只在内联绑定中传递它,那么它将undefined
在所有其他调用中。因此,您的电话可能会被以下内容包围:
if (skipSecondCampusInfo !== false) campusInfo_2(HouseID);
在这种情况下,如果它未定义,它将执行它。否则,如果它是假的,它不会。
推荐阅读
- javascript - 如何通过 ExpressJS 中的“GET”请求获取动态值
- python - TypeError:元组索引必须是整数或切片,而不是 str postgres/python
- ios - 如何让 scrollToRow 在键盘事件的 UITableView 中工作?
- c++ - 通过引用传递向量 C++
- julia - 使用 BSON 的意外行为:Julia 中的 @load
- python - 当代码仍在运行时,我是否总是需要在子类中使用 init 来实例化父类?
- python - 如何从不同文件夹中的文件中检索数据
- c++ - 如何在 gFor 中解决不完整的 ArrayFire
- c# - 使用偏移量复制流
- gitlab - Gitlab多项目管道,如何在最新标签上触发下游管道?