Tag: 事件处理

从页面调用时,Jquery事件处理程序无法正常工作

我编写了一个事件来将数据保存在widget.js文件中,并且处理程序在页面上。 没有错误或exception即将发生但处理程序未被调用。 请帮忙。 Widget.js: (function ($, undefined) { $.widget(‘ui.discussionwidget’, { options: { userID: ‘arti.agarwa’, title: “”, width: “”, containerClass: “.ui-content-gutter” }, saveData: function (userName, msg, parentID) { //Save Discussion History $.event.trigger({ type: “sendMessage”, userName: userName, message: msg, parentID: parentID, timeStamp: new Date() }); }, });})(jQuery); 页面脚本: $(document).ready(function () { $(‘#discussionwidget’).live(“sendMessage”, sendMessageHandler); // sendMessage event handler […]

在Jquery中使用范围时遇到问题

所以我试图在点击链接时传递一个freemarker变量值($ {item.uid}),以便启动具有相同唯一id值的模态。 虽然我的函数可以访问uid的值,但是当我运行$(‘body’).append($(‘div.disclaimer’ + outerVar).remove()); outerVar显示undefined 。 JavaScript的 var outerVar = uid; $(‘body’).append($(‘div.disclaimer’ + outerVar).remove()); function showDisclaimer(uid) { var x = uid; $(‘div.disclaimer’ + x).show(); } function closeDisclaimer(uid) { var x = uid; // Clear the form and close the modal $(‘div.disclaimer’ + x).hide(); } HTML Call Function Test Content Here

Jquery .off然后将其恢复为on

当我想从我的提交按钮中删除点击处理程序时,我正在使用 $(#submitBtn).off();//works fine 但是,当我想恢复到以前的阶段时, .on()不起作用。 if(flag){ $(#submitBtn).off();//works fine $.ajax({ type: ‘POST’, url: ‘someservice.php’, data: {email:email,name:name,text:text}, success: function (data) { $(‘#submitBtn’).on();//does not work });//ajax end }

每个()jQuery中的Change()

管理这种情况的最佳方法是什么: $(‘.element’).each(function() { $sibling = // find a sibling to $this. $mainElement = $(this); // memorize $(this) $sibling.change(function() { // when sibling changes // do something using $mainElement // problem is, $mainElement is not the element you think // $mainElement is the last .element found…. }) }); 一个解决方案是一个表……但是,将()嵌套在each()中没有任何优势…… 我的html示例: 在这个例子中, $sibling = $(this).next(‘input’); 例如。

从JQuery中的element获取click处理程序

如何在JQuery中获取元素的click处理程序的引用? 这是我想要做的: 存储单击处理程序,更改下一次单击的单击处理程序,还原原始单击处理程序 var originalClick = $(settings.currentTarget).click; $(settings.currentTarget).off(“click”); $(settings.currentTarget).click(function (e) { e.preventDefault(); settings.model.modal.close(); $(settings.currentTarget).off(“click”); $(settings.currentTarget).click(originalClick); }); 上面的代码第一次工作,但是,当我再次点击该元素时,它失败了: Uncaught TypeError: Object [object HTMLAnchorElement] has no method ‘on’ 更新: 我现在意识到这是一个非常糟糕的设计,我正在尝试做。 我通过在viewmodel中维护可见性布尔值来解决这个问题,如果是,则不要重新打开模态。

将处理程序绑定到javascript滚动事件 – 性能因素

我绑定一个事件处理程序,它执行if检查以查找屏幕视口中元素的存在并调整4-5个元素的宽度。 我不确定滚动事件在javascript中是如何工作的。 但我的直觉是,即使是我们所做的1px滚动也会触发滚动事件 – 在这种情况下,一旦我们开始快速滚动,滚动听起来更像是连续事件(如果我错了,请纠正我)。 如果是这样的话,不计算视口并检查其中是否存在元素并进行dom操作会对性能造成太大影响吗? 如果我的假设错在了,请帮助我理解滚动事件的工作原理! 谢谢。

.delegate相当于jQuery 1.4.2中现有的.hover方法

我有一个使用.hover方法绑定到hover事件的事件处理程序,如下所示: $(“.nav li”).hover(function () { $(this).addClass(“hover”); }, function () { $(this).removeClass(“hover”); }); 需要注意的是,我需要处理程序中的两个函数来确保同步。 是否可以使用.delegate重写该函数,因为以下不起作用? $(“.nav”).delegate(“li”, “hover”, function () { $(this).addClass(“hover”); }, function () { $(this).removeClass(“hover”); }); 丰富

如何为hoverIntent绑定多个事件处理程序?

我在其中一个js文件中有以下代码 $(‘#elementID’).hoverIntent({ over: function() {//function#1 body}, out: function() {// function#2 body} }); 在我的另一个js文件中,我想为hoverIntent添加另一个方法。 但新绑定会覆盖前一个绑定,只会执行新绑定。 $(‘#elementID’).hoverIntent({ over: function() {//function#3 body} }); 所以我希望在hover时执行function#1和function#3。 是否可以使用hoverIntent? 如果没有,请你指点我另一个方向,所以我能做到吗? 注意:我无权更改第一个文件。 我只是想为hover添加额外的function。 谢谢。

JQuery是否会覆盖现有的内联事件处理程序?

我有一个由许多iframe构建的网站。 我正在努力监控用户活动 – 比如用户点击或keydown。 这只是为了查看用户是否空闲。 为此,我向下钻取所有iframe,div标签并注册hover和点击事件。 同时我不想覆盖/破坏由应用程序定义的现有内联事件处理程序。 jquery会覆盖退出的事件处理程序吗? 如果是的话,如何检查这一点以确保我不这样做? 这是我的用法。 $(divElementObj).click( function() { alert(“div click”); });

添加事件处理程序以循环动态创建的播放列表(YouTube API)

尝试实现播放列表function以及收听历史记录。 用户动态地拖放/排序播放列表的video缩略图到div中。 每次单击缩略图时,video都会加载到播放器中,video会添加到历史记录中( subHist.click() )。 因为video是动态创建的,所以我无法创建事件监听器以在开始时转到下一个video,并且必须在以后添加它。 问题是我在创建事件监听器的函数中有监听历史记录function,因此当我们浏览播放列表时,事件监听器被调用的次数增加,这意味着当单击一次时,video会在播放列表中多次出现。 对于某些代码,这可能更有意义: $(‘#Playlist’).on(‘click’, ‘.playlistYT’, function(){ $(‘#subHistory’).click(); videoID = $(this).attr(“src”).slice(27,38); $(‘#infoID’).val(videoID); player.loadVideoById(videoID ); var nextVideo = $(this).parent().next().find(‘.playlistYT’); player.addEventListener(‘onStateChange’, function stopCycle(event) { if (event.data == YT.PlayerState.ENDED) { $(nextVideo).click(); } }); }); 图像属于类.playlistYT一旦被删除(即在删除任何video之前该类不存在),以及$(‘#subHistory’).click()将video添加到收听历史记录中。 如果我在addEventListener移动var nextVideo ,那么它就无法识别它(不能使用$(this)因为它似乎将其重新定义为事件处理程序中的事件)。 将$(‘#subHistory’).click()到stopCycle函数似乎没什么区别。 花了几天时间玩.one,.off,.live,似乎无法破解它。 removeEventListener似乎没有任何区别。 我想过将一个隐藏的video添加到播放列表中,但这会成为确保video不会出现在用户的收听历史记录/播放列表中的问题。