Tag: javascript events

将其他参数传递给事件处理程序

我在这样的对象中定义了我的函数: _clickHandler: function(event){ event.preventDefault(); }, attachClickEv: function(element){ …… element.on(‘click’, this._clickHandler); }, 问题是我似乎无法将“this”传递给clickHandler函数 我知道我可以把它包装在另一个函数中 var tthis = this; element.on(‘click’, function(event){ tthis._clickHandler(event, tthis); }); 但后来我不能解开这个function element.off(‘click’, this._clickHandler); 还有其他办法吗?

jquery克隆html问题,更新DOM?

我需要javascript / jquery专家的帮助来解决下一个问题: —- 1. 此javascript警告select html标记中所选选项的ID: $(function(){ $(“#id_productos_list”).change( function(){ var op = $(this).selectedValues() alert(op); } ); }); —- 2。 这个javascript克隆html代码: function cloneMore(selector, type) { var newElement = $(selector).clone(); var total = $(‘#id_’ + type + ‘-TOTAL_FORMS’).val(); newElement.find(‘:input’).each(function() { var name = $(this).attr(‘name’).replace(‘-‘ + (total-1) + ‘-‘,’-‘ + total + ‘-‘); var id = ‘id_’ […]

Internet Explorer是否支持arguments.callee.name?

我知道我可以通过使用获得当前运行function的名称 arguments.callee.caller.name 但这在Internet Explorer (任何版本)中都不起作用 。 什么是正确的跨浏览器语法? 是否存在变通方法?

防止jQuery就绪处理程序触发

我有一种情况,在某种情况下,我想要任何jQuery ready处理程序绑定不会实际触发DOMContentReady事件。 这些处理程序绑定在各个地方,包括各种包含文件,插件等。 因此,虽然我可以在靠近页面顶部的脚本中设置某种全局变量,并在每个$(document).ready()绑定之前设置if条件来检查此变量,但我宁愿不这样做。 理想情况下,我正在寻找两件事之一, 我可以在包含之前在jQuery对象上设置的属性,它会告诉它忽略对.ready()调用 我可以在DOMContentReady触发之前在内联脚本中调用文档末尾的方法取消绑定ready()处理程序。 显而易见的一个, $(document).unbind(‘ready’)不会这样做,我猜因为.ready()不是普通的事件绑定。 可以这样做吗? 如果是这样,怎么样? 我有一个模糊的想法是扩展jQuery原型,并用一个方法替换ready() ,该方法将检查我将引入的新属性。 那有意义吗?

如何使用javascript和/或jquery从父窗口访问iframes文档事件鼠标位置

我在父窗口中有一个iframe,iframe src和父窗口位于同一个域中。 为了保持iframe文档不受javascript限制,我希望能够在父窗口中使用一个函数来获取iframe中的鼠标位置。 到目前为止,我的尝试包括: $(document).bind(“mousemove”, function(e){ $(“#result”).html(“x:” + e.pageX + “, y:” + e.pageY); }); $(“#iframe1”).contents().find(document).bind(“mousemove”, function(e){ $(“#result”, window.parent.document).html(“x:” + e.pageX + “, y:” + e.pageY); }); 第一个mousemove事件正确显示结果div中的鼠标位置,但第二个事件(我试图绑定到iframe文档)没有给出任何响应。

jQuery – 拖动时停止hover事件

我正在创建一个拖放图像环境,如果将鼠标hover在图像上,会弹出一个小菜单。 如果单击并拖动图像,则可以对其进行重新排序。 我遇到的问题是,我希望在你拖动时禁用hover事件。 目前,如果您拖动图像,它会触发您hover在其他图像上的所有hover菜单。 $(‘ul.imglist li’).mousedown( function() { $(this).find(‘ul’) .fadeOut(100); }); // Image actions menu $(‘ul.imglist li’).hover( function() { $(this).find(‘ul’) .css(‘display’, ‘none’) .fadeIn(‘fast’) .css(‘display’, ‘block’); }, function() { $(this).find(‘ul’) .fadeOut(100); }); 我在这里有一些jQuery,底部hover事件是我想要在拖动时禁用的事件,顶部mousedown是当你点击图像时摆脱菜单。 我需要一些能够在移动鼠标的同时禁用hover的东西,同时按下按键(拖动)。 我尝试了一些没有运气的事情,是否有人有建议?

鼠标滚轮在容器内滚动 – 捕捉事件

我有一个内部可滚动DIV的页面。 当我将鼠标hover在它上面并尝试使用鼠标滚轮滚动它时,在主页保持放置时,该DIV的内容会根据需要滚动。 但是当我到达DIV滚动区域的底部时,整个页面开始滚动。 我试图在该div上设置事件处理程序,但preventDefault()方法也阻止了DIV本身的滚动。 这是错误的代码: $(‘.folderlist’).on(‘DOMMouseScroll mousewheel’, function(ev){ ev.stopPropagation(); ev.preventDefault(); }) preventDefault()会阻止页面滚动,但也不允许滚动DIV。 我认为stopPropagation()在这种情况下什么都不做 我错过了什么?..

jQuery使用事件处理程序删除元素

我有一个产品列表,我需要动态更新#container的innerHTML。 我的问题是,如果我在这个答案中做了类似的事情: Jquery删除元素内的所有事件处理程序 $(“#container”).find(“*”).off(); 所以,我删除了所有孩子的所有事件处理程序,然后我更新了html: $(“#container”).html(responseFromAJAX); 这将如何影响性能? 我的意思是,这是一个好方法,删除所有旧元素和处理程序,清理内存,或者我需要做更多? 我的应用程序是一个网上商店,所以我的用户将环顾四周,并更新#container可能30-50次/访问。

$(selector)中的jQuery Uncaught TypeError .on()

我收到以下错误: Uncaught TypeError: ((jQuery.event.special[handleObj.origType] || (intermediate value)).handle || handleObj.handler).apply is not a function 这是我的代码,它位于beforeSend和success调用之间,发生错误: $(‘#main-container’).on(‘click’, ‘#sign-in-btn’, function (event) { var username = $(‘#username-textbox’).val(); var password = $(‘#password-textbox’).val(); $.ajax({ url: ‘/login’, method: ‘POST’, beforeSend: function (xhr) { xhr.setRequestHeader(‘Authorization’, ‘Basic ‘ + btoa(username + “:” + password)); }, success: function (data) { } }); event.preventDefault(); }); 我还尝试将$(document).ready(function […]

在javascript / jquery中克隆事件对象

如何创建一个完全独立的新事件对象,其中包含与给定事件对象e相同的所有属性。 到目前为止,我已尝试过以下但没有运气: function myHandler(e) { // … e = e.originalEvent; // method 1 var e2 = jQuery.extend(true, {}, e); // method 2 var e2 = JSON.parse(JSON.stringify(e)); // … } 编辑:我将添加更多细节,以帮助澄清。 非常类似于我想要做的这个问题 :div.dispatchEvent(e.originalEvent),但这样做导致: DISPATCH_REQUEST_ERR:DISPATCH_REQUEST_ERR:DOM事件例外1 所以为了避免这种情况,我需要复制事件对象。 但是,此事件对象不是特定对象(即,有时e是触摸启动,触摸移动或触摸),因此如果我可以获得通用克隆function而不仅仅是对特定属性进行硬编码会更容易。 我的意思是“没有运气”是通过尝试上述方法并通过调度function发送我得到错误。 希望这有助于澄清一点。