我使用jQuery绑定keydown事件以允许文本框中的某些特定字符.我正在尝试使我的代码跨浏览器和平台兼容.我的主要问题是我找不到将接收到的密钥代码映射到有效字符代码的方法,特别是对于来自数字键盘的密钥代码(小数分隔符,是昏迷还是句点等).
感谢Fabian先生的帮助
在jQuery中是否有任何方法可以将监听器附加到单元格,以便当单元格内的文本发生更改(通过JavaScript而不是用户)时,事件会被触发?
我想模拟Ctrl+ C来复制页面中的文本.我第一次尝试这个:
$('#codetext').click( function() {
$("#codetext").trigger({
type: 'keydown',
which: 99
});
}
Run Code Online (Sandbox Code Playgroud)
HTML:
<input type='text' id='codetext'>
Run Code Online (Sandbox Code Playgroud)
我也尝试使用$(this)而不是选择器,但输入元素也有焦点,所以它不会运行.
当meta name ="viewport"设置为user-scalable = yes时,如何检测缩放的缩放比例(或缩放距离)?
我已经在Android上进行了测试,但如果meta name ="viewport"设置为user-scalable = yes,则无法检测到缩放到缩放.如果meta name ="viewport"设置为user-scalable = no,则可以检测到缩放到缩放但是我无法放大文档.
这是我对jsFiddle的测试:
Hammer.js:http: //jsfiddle.net/pE42S/
var pziW = "test";
var viewport_width = $(window).innerWidth();
var zoom = 0;
var hammer = new Hammer(document.getElementById("touchme"));
hammer.ontransformstart = function(ev) {
console.log("ontransformstart");
console.log(ev);
//pziW = $(window).innerWidth() / 2 * ev.scale;
zoom = ev.scale;
var msg = "ontransformstart " + pziW + " scale " + zoom;
log(msg);
};
hammer.ontransform …Run Code Online (Sandbox Code Playgroud) 如何使用mousewheel事件监听器停止传播?
在content元素上使用鼠标滚轮时,整个文档也会滚动
这不起作用
content.on('mousewheel', function(e, delta){
content.scrollTop(content.scrollTop() - (40 * delta));
set_bar();
e.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)
content.on('mousewheel', function(e, delta){
content.scrollTop(content.scrollTop() - (40 * delta));
set_bar();
return false;
});
Run Code Online (Sandbox Code Playgroud) 我继承了一些引发一系列事件的JS(我无法改变):
jQuery(document).trigger('section:' + section);
// where "section" changes dynamically
Run Code Online (Sandbox Code Playgroud)
我想观察所有这些事件,并解析其值section,并根据其内容做一些不同的事情.
如果它没有改变我可以这样做:
jQuery(document).on('section:top', doStuff );
Run Code Online (Sandbox Code Playgroud)
但是,如果我只知道该事件名称的第一部分,我该如何观察事件?
传递给hide.bs.dropdown处理函数的event.target是下拉列表本身,而不是启动事件的元素。
如何从hide.bs.dropdown事件对象获取启动事件的元素?
<div class="dropdown" id='drop'>
<button id="dLabel" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown trigger
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
...
</ul>
</div>
<button class='btn btn-primary'>Other Button</button>
Run Code Online (Sandbox Code Playgroud)
Javascript:
$('#drop').on('hide.bs.dropdown', function(e) {
console.log(e.target); //
})
Run Code Online (Sandbox Code Playgroud)
打开下拉菜单,单击按钮,查看console.log目标。
JSFiddle:http : //jsfiddle.net/DTcHh/4215/
如果可能的话,我不希望将click事件绑定到整个页面。
我试图防止在单击文档中的某些元素时关闭下拉菜单。
更新资料
我最终使用了这种方法:https : //stackoverflow.com/a/19797577/2414886但是我仍然希望有一个更紧凑的解决方案。
我将图像从不同的浏览器选项卡拖放到我的网页的选项卡中.我的"drop"事件的事件处理程序正在除Internet Explorer 11之外的所有其他桌面浏览器中工作.
IE浏览器只是导航到我删除的图像的URL,而不是触发"drop"事件并让我的JS代码完成它想要的东西(如在Windows 7上的Chrome,Firefox,Opera和Safari中).代码如下.请注意代码中列出的警报都没有.
我甚至按照微软页面上给出的建议:https://msdn.microsoft.com/en-us/library/ms536929(v =
vs.85).aspx关于取消"dragenter"的默认动作和"指定window.event.returnValue=falsein无论是ondragenter与ondragover事件处理程序"(注:其他浏览器没有要求我有dragenter事件处理函数)
$(window).on("dragenter", function(event) {
alert('drag enter');
event.returnValue = false;
event.preventDefault();
event.stopPropagation();
});
$(window).on("dragover", function(event) {
alert('drag over');
event.returnValue = false;
event.preventDefault();
event.stopPropagation();
});
$(window).on("dragleave", function(event) {
alert('drag leave');
event.preventDefault();
event.stopPropagation();
});
$(window).on("drop", function(event) {
alert('drop');
event.preventDefault();
event.stopPropagation();
var imageSrc = $(event.originalEvent.dataTransfer.getData('text/html'))
.filter(function(i, elm){return $(elm).is('img');}).attr('src');
// Now do something with the imageSrc URL:
});
Run Code Online (Sandbox Code Playgroud)
非常感谢任何建议!
javascript jquery internet-explorer drag-and-drop jquery-events
我的具体用例是我有一个所见即所得编辑器,它基本上是一个可编辑的 iframe。然而,对于用户来说,它看起来像一个标准的文本区域。我的问题是,我在(感知的)选项卡索引中的该编辑器之前和之后有输入,我希望用户能够按选项卡(或他选择的平台上的等效键)进入所见即所得编辑器当他位于前一个元素时,使用 Shift-Tab 可以在后一个元素中访问该元素。
我知道这可以使用按键事件并检查是否按下 Tab 键来伪造,但我很好奇是否有更好的方法。
更新。Treeface在评论中澄清了实际问题。
问题:
在正常情况下,您可以使用元素TABINDEX的“ ”属性<input>来控制,当跳出“主题”输入字段(以电子邮件形式)时,焦点落在电子邮件中的“正文”输入字段上。只需将正确排序的值分配给两个输入字段的“TABINDEX”属性即可完成此操作。
问题是 TABINDEX 属性仅对同一框架内的元素进行排序。因此,如果“正文”输入字段实际上位于内部IFRAME,则无法使用 TABINDEX 顺序从父框架中的“主题”直接跳到 IFRAME 中的“正文”。
在 Javascript 中,如何附加事件处理程序以便它在默认操作后运行?
<form target="_blank" action="submit.php" onsubmit="doThisAfterSubmit()">
<input type="submit" onclick="doThisAfterSubmit()" />
</form>
Run Code Online (Sandbox Code Playgroud)
类似但不充分的 Stack Overflow 问题:
javascript:可以添加在默认行为之后运行的事件处理程序吗?
我已阅读这些内容,但它们正在处理通过使用诸如keyupover之类的变体来解决的击键事件keypress。我见过的唯一其他解决方案是该setTimeout()方法。我想避免使用setTimeout()更优雅的解决方案(如果存在)。
我的用例是我想在提交后从 DOM 中删除表单。
jquery ×10
jquery-events ×10
javascript ×6
events ×3
android ×1
clipboard ×1
hammer.js ×1
mousewheel ×1