我正在创建一个事件,所以使用DOM Event构造函数:
new Event('change');
Run Code Online (Sandbox Code Playgroud)
这在现代浏览器中工作正常,但在Internet Explorer 9,10和11中,它失败了:
Object doesn't support this action
Run Code Online (Sandbox Code Playgroud)
如何修复Internet Explorer(理想情况下通过polyfill)?如果我不能,是否有可以使用的解决方法?
custom-events dom-events internet-explorer-9 internet-explorer-10 internet-explorer-11
我正在开发一个AngularJs项目.我有一个服务,可以设置和删除某些按钮上的事件.另一项服务使用此服务,我不想直接与按钮交互.但是,我希望通过第一个服务过滤按钮点击事件,并在第二个服务中处理.由于我不希望第二个服务知道按钮,我想我将需要在第一个服务中创建自定义事件.如何创建自定义事件并在单击按钮时触发它?
提前致谢.
我怎么知道我的preventDefault被调用的触发代码?
$(document).trigger('customEvent', params);
if (/* ??? */)
doDefaultActions();
Run Code Online (Sandbox Code Playgroud) 在JavaScript中是否可以侦听属性值的更改?例如:
var element=document.querySelector('…');
element.addEventListener( ? ,doit,false);
element.setAttribute('something','whatever');
function doit() {
}
Run Code Online (Sandbox Code Playgroud)
我想回应something属性的任何变化.
我已经阅读了该MutationObserver对象,以及它的替代品(包括使用动画事件的那个).据我所知,它们是关于实际DOM的变化.我对特定DOM元素的属性更改更感兴趣,所以我不认为就是这样.当然,在我的实验中它似乎不起作用.
我想在没有 jQuery的情况下这样做.
谢谢
这很烦人.我想在javascript中触发一个事件.我需要像往常一样将事件对象传递给参数和一个额外的自定义参数.
在jQuery中,这将非常简单:
$('#element').trigger('myevent', 'my_custom_parameter');
Run Code Online (Sandbox Code Playgroud)
但是我不想用它.我发现的与此相关的其他问题只是建议"使用jQuery!" 这是我正在开发的插件,并且要求jQuery用于一种方法非常愚蠢.任何人都可以指出一种方法来实现上述在跨浏览器兼容的vanilla JS中吗?
任何人都可以告诉我为什么这段代码不起作用?
$('body').on('test', function() {
alert('test');
});
$('body').trigger('test');
Run Code Online (Sandbox Code Playgroud)
我正在使用jquery-1.7.2.min.我没有得到任何错误,只是没有任何反应.
我已经尝试将代码放在内联脚本中,$(document).ready()但仍然没有.我也试过都on()和bind()和没有结果.我看到所有示例都显示相同的语法,所以有什么不同呢?
在Js代码中,如果有两个js对象(一个处理UI(例如一个表单)和另一个向服务器发送请求.
使用自定义事件或正常函数调用在这些组件之间进行交互的更好方法是什么.
例如.
clickForm = function(){
validateForm();
$(document).trigger("submitForm",{"userData":userData});//Event submitForm listened by formManager submitForm method.
}
Run Code Online (Sandbox Code Playgroud)
要么
clickForm = function(){
validateForm();
formManager.submitForm(userData);
}
Run Code Online (Sandbox Code Playgroud)
clickForm方法是UI组件的一部分,它负责管理HTML代码的UI交互.此功能通常在单击提交按钮时调用.
submitForm方法是核心Object的一部分,其职责是向服务器发出请求,解析响应,然后将结果发送到UI组件.
这两种方法中的哪一种是更好的互动方式.任何建议?
我在jquery的ready函数中将一个自定义事件处理程序附加到body.紧接着,我成功触发了自定义事件.
$(function(){
$("body").on("test", function(){ alert("test triggered"); }
$("body").trigger("test");
}
Run Code Online (Sandbox Code Playgroud)
但是,当我在控制台中触发它时没有任何反应.为什么?
我正在创建一堆 Web 组件,每个组件都可以发出自定义事件。举个例子,这里有两个简单的例子:
//MyButton
emits 'myButtonPressed' and detail of this type:
interface ButtonDetailType {
id: string;
}
//MySlider
emits 'mySliderChanging' and details of this type:
interface SliderChangingDetailType {
id: string;
value: number;
}
emits 'mySliderChanged' and details of this type:
interface SliderChangedDetailType {
id: string;
oldValue: number;
newValue: number;
}
Run Code Online (Sandbox Code Playgroud)
要收听组件,我的代码如下所示:
buttonEl.addEventListener( 'myButtonPressed', ( event : CustomEvent ) => {
const detail = event.detail as ButtonDetailType;
//now i have access to detail.id
} );
sliderEl.addEventListener( 'mySliderChanging', ( event : CustomEvent …Run Code Online (Sandbox Code Playgroud) 我知道可以将事件监听器添加到我在Javascript中创建的自定义事件,如下所示:
window.addEventListener("MyCustomEvent", myFunction, false);
Run Code Online (Sandbox Code Playgroud)
但是......是否可以列出任何时刻存在的所有自定义事件?
无论事件是否存在,上面的行都会添加一个事件监听器,因此我无法指出事件是否存在.
custom-events ×10
javascript ×5
jquery ×4
angularjs ×1
attributes ×1
bind ×1
casting ×1
dom-events ×1
events ×1
triggers ×1
types ×1
typescript ×1