标签: jquery-events

Javascript密钥代码=/= char代码

我使用jQuery绑定keydown事件以允许文本框中的某些特定字符.我正在尝试使我的代码跨浏览器和平台兼容.我的主要问题是我找不到将接收到的密钥代码映射到有效字符代码的方法,特别是对于来自数字键盘的密钥代码(小数分隔符,是昏迷还是句点等).

感谢Fabian先生的帮助

jquery cross-platform cross-browser jquery-events

6
推荐指数
2
解决办法
3076
查看次数

在<td>单元格中文本发生变化时的jQuery事件监听器?

在jQuery中是否有任何方法可以将监听器附加到单元格,以便当单元格内的文本发生更改(通过JavaScript而不是用户)时,事件会被触发?

jquery jquery-events

6
推荐指数
1
解决办法
5170
查看次数

如何用jQuery触发Ctrl + C键事件?

我想模拟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)而不是选择器,但输入元素也有焦点,所以它不会运行.

javascript clipboard jquery jquery-events

6
推荐指数
1
解决办法
1万
查看次数

JavaScript:当'user-scalable'设置为yes时,检测到缩放以缩放

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)

javascript jquery android hammer.js jquery-events

6
推荐指数
1
解决办法
2843
查看次数

jquery鼠标滚停止传播

如何使用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)

jquery mousewheel jquery-events

6
推荐指数
1
解决办法
9884
查看次数

当你只知道事件名称的PART时,观察JS事件?

我继承了一些引发一系列事件的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)

但是,如果我只知道该事件名称的第一部分,我该如何观察事件?

javascript jquery events jquery-events

6
推荐指数
1
解决办法
112
查看次数

hide.bs.dropdown事件的起源/目标?

传递给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但是我仍然希望有一个更紧凑的解决方案。

jquery twitter-bootstrap jquery-events

6
推荐指数
1
解决办法
1886
查看次数

Javascript/JQuery删除事件未在Internet Explorer IE 11中触发

我将图像从不同的浏览器选项卡拖放到我的网页的选项卡中.我的"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无论是ondragenterondragover事件处理程序"(注:其他浏览器没有要求我有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

6
推荐指数
1
解决办法
1447
查看次数

触发选项卡索引切换时是否会触发 JavaScript 事件?(TABINDEX 不适用于 IFRAME 中的输入)

我的具体用例是我有一个所见即所得编辑器,它基本上是一个可编辑的 iframe。然而,对于用户来说,它看起来像一个标准的文本区域。我的问题是,我在(感知的)选项卡索引中的该编辑器之前和之后有输入,我希望用户能够按选项卡(或他选择的平台上的等效键)进入所见即所得编辑器当他位于前一个元素时,使用 Shift-Tab 可以在后一个元素中访问该元素。

我知道这可以使用按键事件并检查是否按下 Tab 键来伪造,但我很好奇是否有更好的方法。


更新。Treeface在评论中澄清了实际问题。

问题

在正常情况下,您可以使用元素TABINDEX的“ ”属性<input>来控制,当跳出“主题”输入字段(以电子邮件形式)时,焦点落在电子邮件中的“正文”输入字段上。只需将正确排序的值分配给两个输入字段的“TABINDEX”属性即可完成此操作。

问题是 TABINDEX 属性仅对同一框架内的元素进行排序。因此,如果“正文”输入字段实际上位于内部IFRAME,则无法使用 TABINDEX 顺序从父框架中的“主题”直接跳到 IFRAME 中的“正文”。

javascript jquery events jquery-events

5
推荐指数
1
解决办法
5505
查看次数

默认行为后执行的 Javascript 事件处理程序

在 Javascript 中,如何附加事件处理程序以便它在默认操作后运行?

<form target="_blank" action="submit.php" onsubmit="doThisAfterSubmit()">
    <input type="submit" onclick="doThisAfterSubmit()" />
</form>
Run Code Online (Sandbox Code Playgroud)

类似但不充分的 Stack Overflow 问题:

javascript:可以添加在默认行为之后运行的事件处理程序吗?

如何在 JavaScript 中执行默认操作后捕获事件

我已阅读这些内容,但它们正在处理通过使用诸如keyupover之类的变体来解决的击键事件keypress。我见过的唯一其他解决方案是该setTimeout()方法。我想避免使用setTimeout()更优雅的解决方案(如果存在)。

我的用例是我想在提交后从 DOM 中删除表单。

javascript jquery events jquery-events

5
推荐指数
1
解决办法
6463
查看次数