Tag: javascript events

这个jquery函数意味着什么?

我试图了解js库的工作原理,更具体地说是http://toopay.github.io/bootstrap-markdown/ 。 整个js文件包含在这个函数中: !function ($) { }(window.jQuery); 这是做什么的,我怎么能从图书馆外再次打电话呢?

在单击/更改单选按钮之前,焦点正在运行。 是否可以在焦点之前运行点击/更改?

下面你将看到我正在处理的代码和一个包含的JSFiddle。 问题: 焦点在点击/更改之前运行,因此在选择单选按钮之前边距正在移动。 请解释一下代码,以便我可以从中学习。 如果您没有解决方案,任何提示或方向也会有所帮助。 提前致谢! http://jsfiddle.net/nLgqhqwc/6/ HTML option CSS .panel{ padding:15px; background:grey; margin-bottom:15px; } .panel-primary{ margin:0 15px 0 15px; background:blue; margin-bottom:15px; } jQuery的 $(document).ready(function () { $(‘.panel’).click(function () { event.stopPropagation(); $(‘.panel’).removeClass(‘panel-primary’); $(this).addClass(‘panel-primary’); }); $(‘input, select’).bind(‘focus blur’, function (event) { event.stopPropagation(); $(‘.panel’).removeClass(‘panel-primary’); $(this).closest(“.panel”).addClass(‘panel-primary’); }); $(‘input[type=radio]’).change(function () { event.stopPropagation(); $(‘.panel’).removeClass(‘panel-primary mrgn-lft-lg’); $(this).closest(“.panel”).addClass(‘panel-primary’); }); });

在Internet Explorer 7中触发输入字段上的键盘事件

基本上我有一个问题,在输入元素上触发keyup事件。在Firefox中它可以工作,但在IE7(或IE 7模式下的IE 8)它没有。 有没有办法使这项工作(最好是在jQuery中)? 我希望console打印测试每种类型我键入一个字母。 编辑:匆忙我忘了强制性的jsFiddle链接 – http://jsfiddle.net/sWfNw/3/ 好的,如果我没记错的话,这里是警告,无论版本如何都应该在IE中工作。

使用焦点和焦点时,下拉不会打开

我有两个相同类的下拉菜单让我们称之为下拉菜单,我用jquery下拉菜单: $(‘.dropdown’).focus(function () { //Fiddle with this dropdown }).focusout(function () { //Fiddle with this dropdown }); 当我在具有相同类别(下拉列表)的两个下拉列表之间跳转时,下拉列表不会立即打开而是获得焦点,我必须再次单击它才能打开它。 它似乎与我在操作它时启用和禁用列表中的选项这一事实有关。 有解决方法吗? (我试图使用模糊而不是聚焦,并出现同样的问题) 谢谢! 编辑: 的jsfiddle JS: $(‘.dropdown’).focus(function () { var selectListIndex = $(this).attr(‘selectedIndex’); $(‘.dropdown’).each(function() { $(‘option:nth-child(‘ + (selectListIndex + 1) + ‘)’, $(this)).attr(‘disabled’, ”); }); }).focusout(function () { var selectListIndex = $(this).attr(‘selectedIndex’); $(‘.dropdown’).not($(this)).each(function() { $(‘option:nth-child(‘ + (selectListIndex […]

如何使用沙箱将jQuery事件附加到iframe?

我有一个iframe加载本地页面(代理):我需要这些页面中的javascript不被执行(我已经在服务器上执行它,在客户端再次执行它会导致双重执行,因此很糟糕)。 我可以通过使用新的“沙盒”参数来实现这一点。 问题是,我需要能够将主窗口中的事件添加到iframe内容中。 这似乎不起作用。 我用jsfiddle准备了一个例子。 <iframe id='iframe1' sandbox='allow-top-navigation allow-same-origin allow-forms' srcdoc='iframe1document.body.style.backgroundColor=”yellow”‘> <iframe id='iframe2' srcdoc='iframe2document.body.style.backgroundColor=”yellow”‘> – $(‘iframe’).load(function() { var id = this.id; //this works in both iframes $(this).contents().find(“#test”).html(id+” says gnek!”); //I need this to work for iframe 1, too. $(this).contents().on(“click”, function(event) { alert(“clicked “+id); }); }); 如您所见,frame1是沙箱,不执行内部JS(背景不会变黄)。 但是,我可以在父窗口中使用JS更改其内容。 有没有办法添加活动? 如果没有,将页面加载到iframe而不让它执行其javascript的最佳方法是什么?

Jquery +最新的哈希更改监听器?

我使用http://benalman.com/projects/jquery-hashchange-plugin/来监听我的项目中的哈希变化。 但他的插件已经过时,并且不适用于较新版本的浏览器,如firefox 9和IE9。 搜索谷歌和这里,但找不到任何其他插件。 或者只是使用此代码来定位大多数浏览器? $(window).bind(‘hashchange’, function() { //code }); 编辑:似乎在这些浏览器上有关于console.log()的问题,并且与hashchange无关。 删除所有console.log输出后,它会像预期的那样工作

离开网站或关闭浏览器时触发的事件

我试着用一段时间执行一个javascript函数,当用户通过在浏览器中键入地址离开网站并点击返回或用户关闭浏览器点击“x”按钮。 我尝试了卸载事件,但我无法获得警报 这就是我在做的事情: $(window).unload(function () { alert(“Are you sure?”); }); 也 $(body).unload(function () { alert(“Are you sure?”); }); 我的想法已经用完了!

阻止Javascript函数多次触发

的jsfiddle 我使用一个定制的下拉菜单,它在jquery事件和动画上运行。 当我通过mouseenter激活下拉菜单几次时会出现问题,这会导致菜单向下滑动然后向上滑动几次。 我尝试通过添加.stop(true)来修复它,这是成功的,但它导致了其他类似的问题。 我遵循了这个建议( jsFiddle Here ),但它会导致更多没有吸引力的问题。 我需要的是一种方法来阻止函数冗余启动,但仍然可以立即停止“向下滑动”,然后如果用户触发则“向上滑动”.mouseleave 我纠结了自定义队列5小时,没有成功:( 任何想法,建议和批评都是受欢迎的。

stopPropagation是否也阻止同一元素上的其他处理程序运行?

我知道stopPropagation()阻止事件到达包装当前元素的DOM元素。 它是否也阻止将此事件传递给同一元素上的其他处理程序? 举个例子,我在一个元素上定义了自己的点击处理程序。 另外我还使用这个jQuery Context Menu插件来处理mousedown+(testbutton == 2)+mouseup并在鼠标(up | down)之后使用stopPropagation() ),这似乎禁用了我的点击处理程序。 如果我在插件源中注释这两个调用,我的点击处理程序和上下文菜单正常工作。 这似乎表明stopPropagation()和stopImmediatePropgation()做同样的事情。 我的理解是否正确?

在javascript中设置输入值时引发的事件

在javascript中设置输入值时哪个事件引发了? 我试过这些事件:( propertychange change keypress paste focus textInput input keyup keydown change)例如: $(‘input’).live/bind/on(‘which event’, function() { //… }); $(‘input’)[0].value = “sd”;