sách gpt4 ai đã đi

javascript - 为什么 CSS 转换在通过 trigger.click 触发时不触发

In lại 作者:行者123 更新时间:2023-11-30 16:28:54 26 4
mua khóa gpt4 Nike

我不明白为什么 CSS 转换在通过触发事件调用时不运行,但在通过鼠标单击调用时运行。

我指的是这个 jsFiddle . (我的事件连接在 JS 面板的底部)



第一个按钮只是触发第二个按钮的点击事件。这不会运行关联的 CSS 转换,但它会触发事件并且 console.log 输出完全相同......所以我知道点击事件的处理程序正在触发并被传递触发方式。

 $("#notworks").click(function () {
$('.dl-trigger').trigger('click');
});

然而,CSS 转换仅在直接单击具有类 dl-trigger 的第二个按钮时运行。我在这两种情况下都测试了 cái này,无论是直接点击还是触发点击,它都是相同的引用。

因此无论单击哪个按钮,此代码块都会运行:

 _initEvents: function () {

var self = this;
this.$trigger.on('click.dlmenu', function () {

if (self.open) {
self._closeMenu();
}
else {
self._openMenu();
}
trả về false;

});

我也可以跟踪打开和关闭的调用,并确认它们都运行无误。但是第一次单击按钮时,菜单根本不显示。

使用“CSS”转换时是否会发生某种非我的代码查找?

1 Câu trả lời

要跟进您的聊天室问题,下面的代码返回 SAI.

this.$trigger.on('click.dlmenu', function () {
if (self.open) {
self._closeMenu();
}
else {
self._openMenu();
}
trả về false;
});

从 jquery 事件处理程序返回 false 将抑制事件并等同于调用:

e.preventDefault();
e.stopPropagation();

因此返回 SAI 会抑制该事件,这很重要,因为在 openMenu 函数中,代码添加了一个处理程序来在您单击菜单范围之外的任何地方时关闭菜单:

   $body.off('click').on('click.dlmenu', function () {
self._closeMenu();
});

因此,如果代码没有返回 false 并抑制事件,它将传播到正文并立即再次关闭菜单。这就是单击常规 menuOpen 按钮时发生的情况。

但是,由于您尝试通过以下方式触发/模拟使用另一个按钮点击该按钮:

   $("#notworks").click(function (e) {
$('.dl-trigger').trigger('click');
});

然后那个按钮 notworks 现在传播一个点击,它被 body handler 拾取并立即关闭由 trigger 调用打开的菜单。

所以你只需要取消传播:

   $("#notworks").click(function (e) {
$('.dl-trigger').trigger('click');
trả về false;
});

关于javascript - 为什么 CSS 转换在通过 trigger.click 触发时不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33643215/

26 4 0
Bài viết được đề xuất: javascript - 如何将 SmartyStreets 验证应用于同一页面中的两个表单?
Bài viết được đề xuất: Sử dụng .innerHTML với DOM
Bài viết được đề xuất: javascript - 使用正则表达式将子组放入数组中
Bài viết được đề xuất: c# - 双协方差
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com