标签: javascript-events

jquery:on vs live

我很好奇为什么当我.live()用.on()我的事件替换后,通过html()方法插入AJAX的响应后不起作用.假设我有html结构:

<div class="a">
   <a href="" class="alert-link">alert</a>
   <a href="" class="ajax-update">update</a>
</div>
Run Code Online (Sandbox Code Playgroud)

和jquery代码类似:

$('.alert-link').on("click", function(){
 alert('abc');
 return false;
});
Run Code Online (Sandbox Code Playgroud)

和ajax-update将触发请求,响应将是

警报更新

我会插入它parent().然后再次按下alert-link将导致重定向到/但如果我改为.on(),.live()那么将再次显示警报.我在这里错过了什么?我已经读到这.on()是替换.delegate()和.live().

jquery javascript-events

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

浏览器/选项卡使用javascript(或任何其他语言)关闭检测

我在各个地方搜索了这个问题,但他们提到的只是使用了javascript window.unload&window.onbeforeunload.此外,它在大多数情况下都不能用于Chrome,因为它被阻止了.
然后谷歌如何设法做到这一点.如果我们正在撰写邮件并错误地关闭标签,谷歌会提示我们"你确定吗?" 框.
有人可以帮帮我吗?
实际上我想要做的是询问用户,当他填写表格并错误地点击标签关闭时.如果是的话,我允许他导航离开他留在页面上并继续填写他的表格.

javascript javascript-events

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

DOMAttrModified不会触发

我试图在脚本修改input元素(文本字段)时触发事件处理程序.在Internet Explorer上,我可以使用该onpropertychange事件,但在Firefox和其他浏览器上没有此类事件.因此,根据W3C文档,似乎DOMAttrModified事件完全符合我的要求.但它没有开火Firefox 11.

这是一个简单的代码片段,可以重现问题.我有一个输入文本字段,以及一个将字符添加到value输入文本字段的属性的按钮.单击该add char按钮应该导致DOMAttrModified事件触发:

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript">
            function addChar() {
                var q = document.getElementById("query");
                q.value += "X";
            }

            function loadevents() {
                var q = document.getElementById("query");
                q.addEventListener("DOMAttrModified", function() {alert("DOMAttrModified event!");
                }, false);
            }
        </script>
    </head>
    <body onLoad="loadevents()">
        <input type="text" id="query">
        <br>
        <input type="submit" value="add char" onclick="addChar()">
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

但事实并非如此.知道我做错了什么吗?(我知道DOM Level 3 不赞成这个事件,但现在似乎没有可行的替代方案.据我所知,Firefox 11仍然支持它.)

javascript firefox events dom javascript-events

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

在javascript中将对象作为函数调用

我正在尝试执行在使用javascript代码的网页上执行事件(例如onClick事件)时调用的javascript函数.我从这样的事件中获取函数:

var attributval = document.getElementsByTagName("a").getAttribute('onClick');
Run Code Online (Sandbox Code Playgroud)

我试图执行这个对象(实际上是一个javascript函数)作为一个函数(假设我们在这个例子中,我试过:

var attributval = document.getElementsByTagName("a").getAttribute('onClick');
attributval() = function(){attributval};
attributval();
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

javascript onclick javascript-events

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

jQuery - iPad/iPhone - 禁用后滚动

我已禁用iPad上的滚动:

function disableScrolling() {
    document.ontouchmove = function(e){
            e.preventDefault();
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法再次启用它?

它在以下功能中特别有用:

function enableScrolling() {
    // enable scrolling
}
Run Code Online (Sandbox Code Playgroud)

iphone jquery scroll javascript-events ipad

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

如何更改此代码,以便它只在没有鼠标移动时重定向

我有以下java脚本将用户重定向到另一个网站(在本例中为谷歌).

    <script type="text/JavaScript">
window.setTimeout("location=('http://www.google.com');",5000);
</script>
Run Code Online (Sandbox Code Playgroud)

但是,虽然我希望网站重定向到另一个网站,我不希望它无缘无故地重定向.我的目标是在光标未移动一段时间的情况下自动重定向网站.

这可能吗?

javascript javascript-events

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

JQuery文档单击取消绑定删除所有子项单击事件

我使用JQuery的live()向特定元素添加了一个click事件:

 $('#foo').live('click');
Run Code Online (Sandbox Code Playgroud)

后来,我将bind()添加到文档中:

 $(document).bind('click');
Run Code Online (Sandbox Code Playgroud)

单击文档后,我取消绑定文档单击

 $(document).unbind('click');
Run Code Online (Sandbox Code Playgroud)

这导致了问题:我的#foo元素不再有click事件,因为它是文档的子元素.如何删除文档的单击,保持#foo元素不变?

这是演示:http: //jsfiddle.net/zS2Mt/2/

javascript jquery onclick javascript-events

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

在文档中添加新元素后,Jquery显示无法正常工作

我正在使用Ajax/Request将元素加载到div容器中.默认情况下我隐藏了一个输入框.如果用户单击该div上的编辑图标,我想显示输入框.这是我的代码:

HTML代码

    <div class='container'>
      <input type = 'text' onkeydown='saveFn(event,this)' name = 'editemail' class = 'editemail' style='display:none;     height:20px;' />
    </div>
Run Code Online (Sandbox Code Playgroud)

JS代码

 $(".container").click(function(){
      console.log($(this).find(".editemail").show()); //Note it works fine If i didn't load any new elements into the div.
 });
Run Code Online (Sandbox Code Playgroud)

控制台日志输出在将新元素加载到容器之前.

   <input type="text" onkeydown="saveFn(event,this)" name="editemail" class="editemail" style="height: 20px; " value="hyther@zohocorp.com" title="press enter to save">
Run Code Online (Sandbox Code Playgroud)

将元素加载到容器后的控制台日志输出.

<input type="text" onkeydown="saveFn(event,this)" name="editemail" class="editemail" style="height: 20px; display: none; " value="saravanan@zohocorp.com" title="press enter to save">
Run Code Online (Sandbox Code Playgroud)

尽管我也试图从这个元素中删除"style"属性并添加一个新的样式元素,但它仍然无效.

javascript jquery javascript-events

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

来自Click Handler的jQuery DOM更新

我想在div从点击处理程序调用Ajax更新时显示一个用作加载屏幕,该处理程序可能需要一两秒钟,例如:

var loadingControl;

loadingControl = $("#loading"); // Is initialized after DOM Ready

$('#updateLink').click(function (e) {
    loadingControl.show();
    $.ajax(
    {
        url: 'http://some.url',
        type: "POST",
        success: function (data) {
            $('#divToUpdate').html(data);
        },
        error: handleAjaxError
    });

    loadingControl.hide();

    e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

该loadingDIV不显示.我怀疑这是因为DOM在click处理程序完成之前不会更新.那是对的吗?

如何重新构造此代码以允许DOM在调用后更新.show(),以便加载屏幕div在.ajax运行时可见?

jquery dom javascript-events

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

Javascript中不允许使用的方法

我正在学习Javascript,在这个过程中,我发现Javscript中不允许某些操作,这在一般编程中很常见.例如,由于明显的安全原因,无法在Javascript中控制用户的鼠标指针,请参阅移动鼠标光标Javascript.

我想知道更多这样的事件,可用于控制用户输入,但在Javascript中是不可能的.

javascript ajax javascript-events

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

标签 统计

javascript-events ×10

javascript ×7

jquery ×5

dom ×2

onclick ×2

ajax ×1

events ×1

firefox ×1

ipad ×1

iphone ×1

scroll ×1