我目前正在尝试编写一些JavaScript来获取已被单击的类的属性.我知道要以正确的方式执行此操作,我应该使用事件侦听器.我的代码如下:
var classname = document.getElementsByClassName("classname");
var myFunction = function() {
var attribute = this.getAttribute("data-myattribute");
alert(attribute);
};
classname.addEventListener('click', myFunction(), false);
Run Code Online (Sandbox Code Playgroud)
每次我点击其中一个类告诉我属性时,我都希望得到一个警报框,但遗憾的是这不起作用.有人可以帮忙吗?
(注 - 我可以很容易地做到这一点jQuery,但我不喜欢用它)
我知道我可以通过运行来安装npm包jspm:jspm install npm:<pkg-name>这将允许我在开发中使用它(例如在我的JS文件中:) import myPackage from 'myPackage';.
如果包的package.json文件npm包含依赖项,我希望它也能在包中安装它们.所以在那个包文件夹中,我希望有一个包含的node_modules文件夹.但是,当我运行命令来安装npm软件包时,它不会安装node_modules,我将不得不手动转到该文件夹并运行npm install以显示这些文件夹.这意味着我无法在不手动运行此命令的情况下引用程序包本身中的其他文件/依赖项.有什么我可以通过运行jspm来确保这些安装吗?
在循环数据后,我遇到了一些关于DOM操作的问题.
我们有一个jQuery滑块插件,它与数据绑定并且正常工作,但是在使用时ng-repeat,我们必须将其初始化包装$timeout起来才能工作 - 现在甚至无法正常工作.
我认为使用$timeout是不可靠的,这会导致错误的修复.在jQuery我可以使用$(document).ready()- 这是坚实的,但使用angular.element(document).ready()似乎也不起作用.
调用滑块指令但无法获取滑块中图像的高度,因为图像尚未加载到DOM中 - 导致滑块的计算高度为0.
我现在发现它非常令人沮丧 - 在数据(ng-repeat例如)循环之后必须有一种方法来操纵DOM .
滑块的初始化执行如下:
var sliderLoad = function () {
$timeout(function () {
var setHeight = elem.find('.slide:eq(0)').outerHeight(true);
elem.css({
height: setHeight
});
}, 1000);
// Show the slider nav buttons
elem.parent().find('.direction-nav').show();
};
Run Code Online (Sandbox Code Playgroud)
......这是一个复制演示.
在jQuery中,当您设置事件时,您可以命名它.这意味着(如果您愿意),例如,您可以拥有多个调整大小窗口事件,并且能够单独取消绑定它们,而不必取消绑定该选择器上的所有事件.
jQuery命名空间的示例:
$(window).on('scroll.myScrollNamespace, function() ...
我想知道如何在纯JavaScript中创建命名空间.这显然不起作用:
window.addEventListener('resize.myScrollNamespace', function() ...
我们希望能够在不使用 SocketsIOClient(它确实有效!)、使用 cURL(或其他命令行工具)的情况下,在我们的 Node (Express) 后端测试 Socket IO 连接。
我发现了以下内容:
curl --verbose -i -N -H "Upgrade: websocket" -H "Connection: Upgrade" http://<API_URL>:<PORT>
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用。即使在http://localhost:3000本地使用和运行,它也不起作用。这是回应:
* Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 3000 (#0)
> GET / HTTP/1.1
> Host: localhost:3000
> User-Agent: curl/7.64.1
> Accept: */*
> Upgrade: websocket
> Connection: Upgrade
>
* Empty reply from server
* Connection #0 to host localhost left intact
curl: (52) Empty reply from server
* Closing connection …Run Code Online (Sandbox Code Playgroud)