当我在keyPress事件处理程序中检查它时,myInput.value是一个键击.因此,如果用户输入"a",myInput.value会给我"".然后,当用户键入"b"时,myInput.value会给我"a",等等.通过触发事件的击键输入的字符似乎不会更新该值.我究竟做错了什么?谢谢 - 摩根
我在页面上有一个"新项目"徽章,我想立即更新页面从缓存中加载(即,当点击"返回"或"转发"返回此页面时).完成此任务的最佳方法是什么?
设置非常简单.应用程序的布局每8秒查找一个新项目,并相应地更新徽章+项目列表.
$(function() {
setInterval( App.pollForNewItems, 8000 );
});
Run Code Online (Sandbox Code Playgroud)
当有人导航离开此页面以查看项目的详细信息时,可能会发生很多事情.在任何用户查看之前,事情都是"新的" ,并且应用程序可能会有多个用户同时使用它(用于呼叫中心或支持服务单的工作流程类型).
为了确保徽章始终是最新的,我有:
$(window).bind('focus load', function ( event ) {
App.pollForNewItems();
});
Run Code Online (Sandbox Code Playgroud)
..虽然这有效,但只有在从缓存加载页面时,轮询"加载"上的新项目才有用.是否有可靠的跨浏览器方式来判断是否正在从缓存加载页面?
javascript jquery javascript-events browser-cache browser-history
是否可以检测某些浏览器是否支持某些事件?我可以检测浏览器是否支持document.addEventListener,但我需要知道它是否支持DOMAttrModified事件.Firefox和Opera支持它,但Chrome和其他人不支持.
谢谢,如果有人可以帮助!
javascript browser-detection event-handling javascript-events detection
如何模糊/聚焦contentEditable = true的div ?我试图$(elm).blur()和$(elm).attr('contentEditable', false);
我需要确定导致焦点事件的原因.
理想情况下,我想区分点击,标签/键盘输入和手动(通过代码)触发器.
我怎样才能做到这一点?
我正在看事件对象,但我没有看到任何有用的东西.
我有一个简单的html选择标记,附带一些选项:
<select>
<option>school a</option>
<option>school b</option>
<option>school c</option>
</select>
Run Code Online (Sandbox Code Playgroud)
我想以与我想说的相同的方式将一些简单的事件处理程序附加到选项...链接:
<option onclick="scheduleA();">school a</option>
Run Code Online (Sandbox Code Playgroud)
我是否需要构建一个单独的javascript函数来处理这种情况下的事件处理,还是有一些快速的html来完成这个任务?
更新:( 回顾,小提琴和赏金)
这个问题并没有得到太多的关注,所以我要花一些代表.我知道我的答案和问题往往过于冗长.这就是为什么我继续设置这个小提琴,在我看来,这是我目前不得不用来接近冒泡change事件的代码.我正试图解决的几个问题:
pseudo-change事件不会触发一个select元素,除非它失去焦点.在某些情况下,应在选择新值时重定向客户端.我该如何实现这一目标?realTarget属性.checked通过单击标签在IE中更改复选框的-state时,一切都很好(虽然它需要一些讨厌的解决方法),但是当直接单击复选框时,会调用处理程序,但是检查状态保持不变,直到我单击一个第二次.然后值会更改,但不会调用处理程序.任何可以帮助我解决上述一个或多个问题的信息将不胜感激.拜托,我没有忘记添加一个jQuery标签,我喜欢纯JS,所以我正在寻找一个纯粹的JS答案.
我有一个网页上有超过250个选择元素,以及20~30个复选框.我还必须跟踪用户的操作,并采取适当的措施.因此,我很自然地委派变更事件,而不是添加数百个听众,恕我直言.
当然,IE -company策略:IE8必须得到支持 - 在我需要时不会触发onchange事件.所以我想假装一个onchange事件.到目前为止,我所做的工作相当不错,除了一件真正让我烦恼的事情.
我正在使用onfocusin并onfocusout注册活动.在某些情况下,当用户从select元素中选择一个新值时,脚本应立即响应.但是,只要选择没有失去焦点,就不会发生这种情况.
这是我到目前为止所提出的:
i = document.getElementById('content');
if (!i.addEventListener)
{
i.attachEvent('onfocusin',(function(self)
{
return function(e)
{
e = e || window.event;
var target = e.target || e.srcElement;
switch (target.tagName.toLowerCase())
{
case 'input':
if (target.getAttribute('type') !== 'checkbox')
{
return true;
}
return changeDelegator.apply(self,[e]);//(as is
case 'select':
self.attachEvent('onfocusout',(function(self,current)
{
return function(e)
{
e = e || window.event; …Run Code Online (Sandbox Code Playgroud) javascript internet-explorer javascript-events event-delegation
我正在使用event.target.className来获取ClassName,但有时一个元素有多个类名,我怎么能创建它,所以它只给出了第一个类名作为结果?
哦,请不要使用jQuery.
我是骨干的新手,我正在寻找一种方法,当我按下Enter并点击时,我的按钮被触发.目前showPrompt仅在单击时执行.什么是最干净的DRYest方式,它也可以在按下时执行Enter,最好只用于输入字段.
(function () {
var Friend = Backbone.Model.extend({
name: null
});
var Friends = Backbone.Collection.extend({
initialize: function (models, options) {
this.bind("add", options.view.addFriendLi);
}
});
var AppView = Backbone.View.extend({
el: $("body"),
initialize: function() {
this.friends = new Friends(null, {view: this});
},
events: {
"click #add-friend": "showPrompt",
},
showPrompt: function () {
var friend_name = $("#friend-name").val()
var friend_model = new Friend({ name:friend_name });
this.friends.add( friend_model );
},
addFriendLi: function (model) {
$("#friends-list").append("<li>" + model.get('name') + "</li>");
}
}); …Run Code Online (Sandbox Code Playgroud) 我试图阻止用户回到我的网络应用程序.为此,我尝试捕获window.onpopstate并添加e.preventDefault以取消后退按钮效果.
但它似乎没有发生.
window.addEventListener('popstate',function(e){
console.log(e); e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
是否无法阻止浏览器的popstate事件?或者我做错了什么?
javascript ×10
jquery ×4
html ×2
back-button ×1
backbone.js ×1
class ×1
classname ×1
detection ×1
events ×1
forms ×1
popstate ×1