targetElement.closest

文章介绍了如何在Vue组件中使用`onMounted`钩子在页面加载时添加document点击事件监听,以及定义一个事件处理函数`closeIdentity`,该函数通过判断点击元素是否在特定元素`.identity-all`内来控制`isExpanded`状态的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


// 在组件挂载时,给 document 添加点击事件监听
onMounted(() => {
  document.addEventListener('click', closeIdentity)
})

// 点击事件处理函数,用于改变 isExpanded 的值为 false
const closeIdentity = (event: any) => {
  // 获取点击的元素
  const targetElement = event.target
  // 判断点击的元素是否位于 identity-all 元素之内
  if (!(targetElement.closest('.identity-all'))) {
    isExpanded.value = false
  }
}


// 岗位切换是否展开
const isExpanded = ref(false)

(function(vita) { var systemUserAdd = vita.Backbone.BizView.extend({ events : { "click #isSysUser" : "_isChecked", "click .close" : "_closePage" }, _initialize : function() { var widget = this, element = $(widget.el), global = widget.global, data = element.data("data"); //时间控件类型初始化 var datetime = widget.require("datetime"); var timeTxts = element.find("input[name='timeTxt']"); if (timeTxts.length) { timeTxts.each(function(i, timeTxt) { datetime.register($(timeTxt), { preset : widget.global.preset }); }); } var initEffDate = widget.getNowDate(new Date()); var initExpDate = "2999-12-31"; element.find("#effDate").val(initEffDate); element.find("#expDate").val(initExpDate); //获取登陆员工ID widget.model.set('loginStaffId',data.loginStaffId); }, global : { preset : 'date', chooseArea : "../sm/chooseArea", staffSelectList : "../sm/staffSelectList", selectOrg : "../sm/selectOrg" }, getNowDate : function (date) { var y = date.getFullYear(); var m = date.getMonth() + 1; m = m < 10 ? '0' + m : m; var d = date.getDate(); d = d < 10 ? ('0' + d) : d; return y + '-' + m + '-' + d; }, _isChecked : function(e) { var widget = this, element = $(widget.el); var button = $(e.target).closest("input"); var id = button.attr("id") || ""; var idVal = "#"+id; var ischecked = $(idVal).prop('checked'); if(id=="isSysUser"){ if(ischecked){ widget.model.set({"isSysUser" : '1'}); }else{ widget.model.set({"isSysUser" : "0"}); } } }, _closePage : function() { var widget = this, element = $(widget.el); element.closest("[data-widgetfullname=vita-dialog]").dialog("close"); } }); vita.widget.register("systemUserAdd", systemUserAdd, true); })(window.vita);解释一下这些代码
06-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值