标签: javascript-events

有没有办法删除jQuery中的所有命名空间绑定?

我有一些简单的代码,如:

$('#modal-buttons [href*=close]').bind('click.modalClose',function(){
  app().modal('close')
});
Run Code Online (Sandbox Code Playgroud)

但是,让我说我不会知道任何地方click.modalClose将受到约束,有没有办法摧毁所有这些特定的绑定,无论元素是什么,而不是必须做

$('#modal-buttons [href*=close],.someOtherelement,#onemore,.another').unbind('click.modalClose');
Run Code Online (Sandbox Code Playgroud)

javascript jquery events bind javascript-events

2
推荐指数
1
解决办法
102
查看次数

将事件附加到DOM上的所有内容的最明智的方法是什么?

所以标题有点耸人听闻,所以让我描述一下我想要完成的事情.我基本上想要从Firebug中制作'inspect element'悬停效果,因此用户最终可以从DOM中选择内容.

我从一个天真的实现开始

$('div').bind('mouseover', function() {
    $(this).css('border', '1px solid black');
}).bind('mouseleave', function() {
    $(this).css('border', 'none');
});
Run Code Online (Sandbox Code Playgroud)

这有几个问题(其中一些我可以修复),但是直接和最明显的是冒泡,以便每个父母<div>都有一个边界,而且它只附加到<div>s

我是否需要枚举我想要附加此事件的每个元素集?我是否需要以某种方式阻止冒泡,以便只有最上层的元素才能获得事件处理程序(这看起来像什么?)

欢迎任何和所有建议!

javascript jquery dom javascript-events

2
推荐指数
1
解决办法
139
查看次数

JavaScript脚本完成后加载jQuery脚本

类似于jQuery在文档加载后加载的方式,我需要在JavaScript脚本完成后使用一些jQuery.

我正在加载来自Google Data API的联系人数据,并且数据显示的div需要完全加载(通过javascript),如果我是正确的话,可以通过jQuery访问.

有没有办法做到这一点?

javascript jquery javascript-events

2
推荐指数
1
解决办法
3426
查看次数

如何在JavaScript中扩展XMLHttpRequest对象?

我想扩展现有的XMLHttpRequest对象,以便它可以与所有浏览器一起使用.现在我已经陷入了JS继承和事情,但是在开始之前我希望看到它的好例子.

HTML5具有上传和进展事件的东西,我想在继承的新对象中实现,即使不向客户端引入JS错误也不支持该功能.所以我想实现这样的目标.

Class XMLHttpRequest{}
Class UploadXMLHttpRequest: XMLHttpRequest{}
Run Code Online (Sandbox Code Playgroud)

其他方法可以附加到UploadXMLHttpRequest类,如下所示.

UploadXMLHttpRequest.prototype.uploadFile = function(file){

}
Run Code Online (Sandbox Code Playgroud)

考虑到YUI,JQuery和其他人在市场上很好,没有人真的想要这样做,这让我很难找到好的资源.

javascript ajax javascript-events

2
推荐指数
1
解决办法
2272
查看次数

clearTimeout和setTimeout不起作用

作为这个问题的后续,我想知道为什么这不起作用

$("#textarea").keydown(function(){
oldValue = $("#textarea").val();
});
$("#textarea").keyup(function(){
var startTimer = null;
if(startTimer) clearTimeout(startTimer);
startTimer = setTimeout(function(){
var newValue = $("#textarea").val();
// get something out of the comparison
alert(something) // alert the comparison
  oldValue = newValue;

},2000);
Run Code Online (Sandbox Code Playgroud)

所需的行为是仅在用户未输入任何内容2秒时才收到警报消息.它适用于比较部分,但是,当我按原样键入时,它不会停止警报消息.相反,我得到的警报数量与按下的按键数量相同.我试过这个创建和删除cookie的版本,它工作得很好.这个特殊情况有什么问题?

javascript javascript-events settimeout

2
推荐指数
1
解决办法
1943
查看次数

检测javascript中的组合键击

我正在创建一个包含问题的html页面(类似情况的拼图).这个问题的答案是"Windows 7".但我希望用户只有在按下时才能解决问题windows key followed by 7.我想为此创建一个JavaScript函数.我可以通过获取击键的ascii值来捕获单个按键.但是,当我尝试联合使用它不起作用时.怎么去解决这个......任何想法..

html javascript javascript-events

2
推荐指数
1
解决办法
1536
查看次数

隐藏元素的HTML/JavaScript/JQuery Document.onChange不起作用

我编写了一个客户端的选择框,用来查找由第三方javascript函数重新编写成一堆div和spans的脚本,最后是一个隐藏元素,其中包含选择div/span元素的选定值.还有另一个选择框,我在这个选择框下方编程,这取决于第一个选择框的值(即用户选择一个国家,如果该国家/地区包含美国和加拿大等地区,则会出现状态选择框) .在任何情况下,我认为最好只从第一个选择框向新创建的隐藏元素添加onChange事件,然后编写我自己的javascript函数,该函数将根据隐藏元素值显示/隐藏第二个选择框它因选择国家而改变(第三方javascript已经用新选择的国家值更新隐藏元素值).我试过在jQuery和直接javascript api中做这个,但似乎什么都没有用.仅供参考,当第三方javascript将我的选择框重写为div/span和隐藏输入字段时,隐藏输入字段没有id属性,因此我通过其名称引用该元素("gather_data [7] [0] ").这是我到目前为止尝试的代码....

<script type="text/javascript">
 jQuery(document).ready(function(){
    jQuery("input-country").change(function(e){
        console.log("testA");
    });
})
jQuery("input-country").change(function(e){
    console.log("testB");
});
jQuery(document).ready(function(){
    jQuery(document.forms['myForm']['collected_data[7][0]']).change(function(e){
        console.log("testC");
    });
})
jQuery(document.forms['myForm']['collected_data[7][0]']).change(function(e){
    console.log("testD");
});
document.forms['myForm']['collected_data[7][0]'].onchange = function(){
    console.log("testE");
};
document.getElementById('input-country').onchange = function(){
    console.log("testF");
}
jQuery(document.forms['myForm']['collected_data[7][0]']).live('change',function(){
    console.log("testG " + jQuery(this).val()) 
});
jQuery('input-country').live('change',function(){
     console.log("testH " + jQuery(this).val())
});
 jQuery(document).ready(function(){
   jQuery(document.forms['myForm']['collected_data[7][0]']).live('change',function(){
        console.log("testI " + jQuery(this).val())
   });
})
jQuery(document).ready(function(){
   jQuery('input-country').live('change',function(){
        console.log("testJ " + jQuery(this).val())
    });
})
</script>
Run Code Online (Sandbox Code Playgroud)

html javascript jquery javascript-events

2
推荐指数
1
解决办法
2900
查看次数

检测用Javascript加载的页面

所以,我有一个充满图像的投资组合页面,我想用掩模覆盖隐藏,直到所有图像都有机会完成加载.有没有办法检测页面上所有内容的加载完成?

我想找到一种方法来实现这一点,最好使用jquery库.有任何想法吗?

html javascript jquery javascript-events

2
推荐指数
1
解决办法
4189
查看次数

通过拖动删除jQuery FullCalendar事件

我有这个代码:

eventDragStop: function(event, jsEvent, ui, view) {
    calendar.fullCalendar('removeEvents', event.id);
}
Run Code Online (Sandbox Code Playgroud)

但我被困在那里.我希望能够将事件拖到类名为"event-delete"的div上,并删除该事件.

我已经尝试了几种方法来识别事件是否被拖过删除div无济于事.上面的解决方案似乎部分起作用.事件触发器正在工作但冻结任何拖动的元素.

jquery javascript-events fullcalendar

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

如何动态注入JavaScript函数?

我在工作中使用具有可怕UI的产品并试图通过Chrome中的UserScripts使其变得美味.为此,我试图通过UserScripts机制将JavaScript函数注入页面:

// find the div
var dropDown = document.getElementById("tstGlobalNavigation_ddlChooseProject");

// inject function
dropDown.innerHTML = dropDown.innerHTML + "<script>function gotoIncident(){alert('111')}</script>";        

// inject a button
dropDown.innerHTML = dropDown.innerHTML + "&nbsp;&nbsp;&nbsp;<input type='button' name='btnSearch' value='Go' onClick='javascript:gotoIncident()' >";
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我正在注入一个按钮和一个函数(gotoIncident),当用户单击该按钮时它将触发.

按钮确实出现在屏幕上但是当我点击它时,javascript调试器告诉我gotoIncident没有定义.

我错过了什么?

javascript google-chrome javascript-events userscripts

2
推荐指数
1
解决办法
6706
查看次数