Tag: javascript events

DOM Events API:事件委托和stopPropagation

这是jQuery 1.7的代码: bu here $(document).on(‘click’, ‘.test’, function () { alert(0); return false; }); $(document).on(‘click’, ‘.bu’, function () { alert(1); return false; }); $(document).on(‘click’, ‘.bu’, function () { alert(2); return false; }); 点击.test> .bu将提醒“1”并提醒“2”,但不提示“0” 我的问题是:如何在没有jQuery的情况下(在本机DOM API上)做同样的事情? 似乎,如果没有实现我自己的库,我无法使用Native DOM API … 谢谢!

仅在单击元素时触发事件,而不在其子元素上触发事件

如果我将click处理程序绑定到body元素,当我单击页面上的任何内容时,将触发事件。 我可以在每次点击时查看event.target : $(“body”).on(“click”, function(event) { if (event.target.tagName == “BODY”) { … } }); 但这似乎有点矫枉过正。 有没有办法只在单击身体的空白区域时触发事件?

jqueryMobile tap和bubbling / propagation

在android 2.x浏览器中看到这个示例..在我的应用程序中复制一个场景的示例.. http://johnchacko.net/samples/tap.html 它的abt听’tap’并从监听器调用changePage … 第二页有一些输入字段,’tap’事件冒泡/传播到第二页,焦点随机设置为输入字段… 我读过类似的问题,想知道任何人遇到过同样的问题并得到一个解决方法…. 或者我必须只使用“点击”?

通过html图像元素对象显示图像

我有以下代码: function createImage(source) { var pastedImage = new Image(); pastedImage.onload = function() { } pastedImage.src = source; } 函数createImage包含包含图像源的source参数。 之后我创建了类Image的对象pastedImage,并在警告我获得了像[object HTMLImageElement]类的html图像元素[object HTMLImageElement] 。 我的问题是如何使用该对象将图像显示到我的html页面。 我想在onload函数后显示它。 提前致谢。

如何在canvas上移动矩形

我在使用JavaScript的应用程序中使用canvas。 在那个canvas上我绘制了一个矩形。 我想在鼠标的帮助下移动矩形(例如移动滑块)如何使用JavaScript或J查询移动该矩形。

$(window).load OR $(window).scroll在同一个函数中?

我在网站上实现了stickyfloat(http://plugins.jquery.com/files/stickyfloat_0.htm)。 它很好用一个问题。 该函数在$(window).scroll上触发,而不在$(window).load $(window).scroll上触发。 我希望它能触发,因为我链接到页面中的锚点(http://tre-stage.wdogsystems.com:8000/faq/#does-the-sale-of-my-receivables-have-a – 我的信用报告上的负效应)我想在页面加载时出现侧边菜单,而不仅仅是当我启动滚动时。 如果您查看上面的页面,它就像我想要的那样工作。 但是,这只是因为我用$(window).load重复了相同的function。 这对我来说似乎非常低效。 那么,有没有办法把两者连在一起? 例如: $(window).scroll || $(window).load (function () …

事件处理订单

javascript jquery事件处理如果在事件上(例如’click’)为父元素绑定了一个函数,为子DOM元素绑定了另一个处理函数,它们中的哪一个被调用? 如果所有人都会按照哪个顺序打电话? 谢谢!

表单在keyup上使用submit()提交两次

我有一个与此类似的jQuery / HTML代码: $(function() { $(‘#my-textbox’).keyup(function(e) { var $textbox = $(this); if ($textbox.val().length > 0 && e.keyCode == 13) { $textbox.parent(‘form’).submit(); } }); }); 目的是在用户按下“Enter”键时自动提交表单。 我经常使用Firefox,所以在我使用谷歌浏览器和Internet Explorer进行测试之前,一切都很好。 当我在后面的浏览器中按Enter键时,有时我会将表单提交两次。 这很容易被注意到,因为我会在我的数据库中获得重复的条目,并且我会看到两个使用Fiddler的POST 。 经过一些测试,我发现我的问题是jQuery代码,因为文本框会在没有它的情况下自动提交,并且使用此代码会在某些浏览器中产生第二个POST 。 我的问题是: 为什么浏览器不能巧妙地阻止第二个表单发布(就像Firefox在我的测试中所做的那样)? 我是否应该在所有平台的所有主流浏览器中都期望这种行为 有没有办法改进这个代码所以我使用JavaScript执行提交,但是没有提交两次提交的表单?

用户点击jQuery / javascript不同的行为,并以编程方式单击一个复选框

有点难以解释,所以我在这里设置了一个jsFiddle。 基本上,当用户单击复选框时,我会触发一些行为。 在另一个地方,我试图以编程方式单击复选框,我需要看到完全相同的行为。 它不起作用,似乎与点击的顺序和确定已检查的属性有关。 如何在不诉诸黑客的情况下获得我正在寻找的行为?

无法将输入字段集中在装有ajax调用的DOM中

我疯了,试图找出如何使这项工作。 代码看起来大致如下: function onDropDownChanged() { $(“#updatePanel”).load( “myUrl”, { id: $(“#myDropDown option:selected”).val() }, onPanelLoaded ); } function onPanelLoaded() { $(“#theTextInput”).focus(); } $(document).ready(function() { $(“#myDropDown”).change(onDropDownChanged); } 第一次触发更改处理程序时,它会执行ajax更新,并且文本框会被聚焦。 但是,在后续更改中,它继续执行ajax更新,但文本框永远不会再次聚焦。 我发现如果在onDropDownChanged ,我在ajax调用之前添加了$(“#updatePanel”).empty() ,文本框将始终聚焦。 问题是整个表格消失了一秒钟,造成丑陋的闪光。 鉴于ajax应该让这样的事情变得更好,这不是我想要使用的解决方法。