jquery - Bootstrap Dropdown 事件仅在 html 元素上触发
问题描述
因此,根据文档,我应该能够根据事件捕获任何给定的下拉.dropdown-menu
事件。
所以我尝试使用*
选择器进行调试,因为这不起作用。
$(document).ready(function () {
$('*').on('hide.bs.dropdown', function (ev) {
console.log(ev);
});
});
奇怪的是,它将根html
元素显示currentTarget
为事件的。
任何在我的选择器中增加特异性的尝试都会导致它失败。我可以参考target
成功捕获的事件,它不再起作用了。即使我尝试使用#sidebar *
(它的伟大-伟大-...祖父母)作为选择器,它也不起作用。
我已经尝试过每一个类或属性选择器,但它不起作用。html
只有当它附加到元素时它才会接受它。
有没有办法让这个更具体,或者这就是我要摆脱的全部?
更新:
显然这与 Laravel Mix 有关。它破坏了所有jQuery 事件挂钩逻辑。我无法将简单的单击事件附加到按钮:
$(document).ready(function() {
$('#sidebar-toggle').on('click', function (ev) {
console.log(ev);
});
});
再次用作选择器*
,我捕获元素click
上的事件,仅此而已。html
我怀疑这是绑定global
对象而不是window
对象的问题,但由于过去的问题让依赖项正确绑定,我别无选择,只能使用它。
我的bootstrap.js
文件:
import Vue from 'vue';
import axios from 'axios';
import PopperJs from 'popper.js';
global._ = require('lodash');
global.$ = global.jQuery = require('jquery');
global.axios = axios;
require('bootstrap');
global.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
我的webpack.mix.js
文件:
const path = require('path');
const mix = require('laravel-mix');
const Dotenv = require('dotenv-webpack');
mix.disableNotifications();
// almost works but puts the manifest in the wrong place
// mix.setPublicPath('public/assets/build');
let assetDir = 'assets/build';
mix.config.fileLoaderDirs.fonts = `${assetDir}/${mix.config.fileLoaderDirs.fonts}`;
mix.config.fileLoaderDirs.images = `${assetDir}/${mix.config.fileLoaderDirs.images}`;
mix
.webpackConfig({
plugins: [
new Dotenv()
],
resolve: {
extensions: ['.js', '.vue', '.json'],
modules: [
path.resolve('./node_modules'),
path.resolve('./resources/js')
]
}
})
.js('resources/js/app.js', `public/${assetDir}/js`)
.extract([
'axios',
'bootstrap',
'jquery',
'lodash',
'popper.js'
])
.autoload({
'axios': ['window.axios', 'axios'],
'jquery': ['window.jQuery', 'jQuery', 'window.$', '$'],
'lodash': ['window._', '_'],
'popper.js': ['window.Popper', 'Popper']
})
.version();
解决方案
推荐阅读
- vue.js - 使用 Vue 和 Axios 上传多个文件
- activemq-artemis - 如何在管理控制台上显示新队列的创建选项卡?
- c# - 通过 InputSimulator C# 转发一系列扫描码
- vb.net - 我想使用 VB.NET 从事件日志中列出最后 20 个条目
- java - 带有 Spring Boot 错误的 JBOSS 上的 Soap 服务
- node.js - 如何在 Jade 模板中预填充编辑页面(Node + Express + Jade)
- python - 使用正则表达式从python字符串中提取多个组
- javascript - 在 php (Laravel) 中显示数组对象
- python - 如何在嵌套列表理解中打印新行?
- python - OSError: [WinError 193] %1 不是有效的 Win32 应用程序(与版本有关吗?)