标签: javascript-events

JavaScript KeyCode值在Internet Explorer 8中是"未定义的"

我遇到了一些我编写的JavaScript问题,但只能使用Internet Explorer 8.我在Internet Explorer 7或更早版本或Mozilla Firefox 3.5或更早版本上执行此操作时没有问题.当我在Internet Explorer 8上使用兼容模式时,它也可以正常执行.

当用户在文本框中输入值时,我正在做的是覆盖Enter键.所以在我的元素上我有这个:

<asp:TextBox ID="ddPassword" runat="server" TextMode="Password" onkeypress="doSubmit(event)" Width="325"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)

然后我有以下JavaScript方法:

function doSubmit(e)
{
    var keyCode = (window.Event) ? e.which : e.keyCode;
    if (keyCode == 13)
        document.getElementById("ctl00_ContentPlaceHolder1_Login").click();  
}
Run Code Online (Sandbox Code Playgroud)

同样,这一切都适用于几乎所有其他浏览器.Internet Explorer 8只是让我很难过.

非常感谢您提供的任何帮助.谢谢!

更新:感谢大家的快速反馈.Chris Pebble和Bryan Kyle都帮助解决了这个问题.我已经授予布莱恩"答案"以帮助他的声誉.感谢大家!

javascript javascript-events internet-explorer-8

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

JQuery委托方法不起作用

我试图在我使用DataTables.Net插件包装的网格上使用委托方法.我最初有这个代码按预期工作.

    $("#myGrid tbody tr").click(function() {
        var id = $(this).children('td').eq(0).text();
        alert(id);
    });
Run Code Online (Sandbox Code Playgroud)

但是,如果我更改分页大小,则较新的行没有调用该函数的click事件.我决定新的JQuery委托方法应该完全符合我的要求; 但是,它对任何tr元素都没有任何作用.

任何人都可以解释为什么这不起作用:

    $('#myGrid tbody').delegate('tr', 'click', function() {
        var id = $(this).children('td').eq(0).text();
        alert(id);
    }); 
Run Code Online (Sandbox Code Playgroud)

我尝试了选择器的不同组合,没有一个让它工作.

谢谢Paul Speranza

javascript jquery delegates javascript-events

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

使用jquery获取垂直滚动的最大值

这是我的视图代码我使用jquery它工作,我没有任何问题,直到我更改它停止工作的屏幕分辨率.我知道问题在哪里,但我无法解决它看代码:

    @model PNUBOOKIR.Models.ProductModels
@{
    Layout = null;           
}

<!DOCTYPE html>
<html>
<head>

<title>Index</title>
<script src="@Url.Content("~/Scripts/jquery.js")" type="text/javascript"></script>    
<script type="text/javascript">
    var endRun = false;
    var PageNO = 1;
    $(window).scroll(function () {
        if ((($("#container").outerHeight() - 796) == ($(this).scrollTop())) && (!endRun)) {
            endRun = true;
            Load();
        }
    });

    $(document).ready(function () {
        Load();
        return false;
    });

    function Load() {
        var BtnShowMore = document.getElementById("BtnShowMore");
        BtnShowMore.innerHTML = "Loading...";
        $.ajax({ type: "Post",
            url: "Product" + "/" + "GetHomeEventAjax",
            data: "{" + "PageNO" + ":" + PageNO + "}", …
Run Code Online (Sandbox Code Playgroud)

javascript jquery javascript-events

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

使用javascript添加日期

我想使用javascript将日期添加到给定日期.我有以下代码

function onChange(e) {
    var datepicker = $("#DatePicker").val();
    alert(datepicker);
    var joindate = new Date(datepicker);
    alert(joindate);
    var numberOfDaysToAdd = 1;
    joindate.setDate(joindate + numberOfDaysToAdd);
    var dd = joindate.getDate();
    var mm = joindate.getMonth() + 1;
    var y = joindate.getFullYear();
    var joinFormattedDate = dd + '/' + mm + '/' + y;
    $('.new').val(joinFormattedDate);
}
Run Code Online (Sandbox Code Playgroud)

在第一个警报我得到日期,24/06/2011但在第二个警报我得到Thu Dec 06 2012 00:00:00 GMT+0500 (Pakistan Standard Time)哪个是错的我希望它保持,24/06/2011以便我可以添加天数.在我的代码中,我想要我的最终输出25/06/2011

小提琴是@ http://jsfiddle.net/tassadaque/rEe4v/

javascript jquery date javascript-events

11
推荐指数
3
解决办法
6万
查看次数

如何通过jQuery删除值的反斜杠?

如果 $(this).val()有反斜杠,请用jQuery删除反斜杠.如何? 1111\/11\/11- >1111/11/11

javascript jquery javascript-events jquery-validate

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

在文本框中选择建议项目时的jQuery事件?

我想在用户输入后立即对文本框控件的每次修改运行一个函数.该事件.keyup()对于大多数的情况是好的.

但是,浏览器(如Chrome或Firefox)可能会建议文本框控件的自动完成条目(可能是因为输入控件的@name或@id已知).

不幸的是,当"点击建议的条目"时,我无法触发以下任何事件.(.keyup()在使用键盘选择时触发)

$('input#email')
  .click(function() { console.log('click'); })
  .keyup(function() { console.log('keyup'); })
  .keydown(function() { console.log('keydown'); })
  .change(function() { console.log('change'); })
  .focus(function() { console.log('focus'); })
  .blur(function() { console.log('blur'); });
Run Code Online (Sandbox Code Playgroud)

我想尽可能避免使用setInterval()定期检查.

有没有办法检测到这个"选择建议"事件?

javascript jquery javascript-events

11
推荐指数
2
解决办法
2676
查看次数

jQuery.on()如何工作?

我还没有看到这个函数的来源,但我想知道,它是否像这样工作:

  1. 通过其选择器选择元素
  2. 将提供的事件处理程序委托给他们
  3. setInterval在该选择器上运行并不断取消委托,然后重新委派相同的事件

或者对此有一个纯JavaScript DOM解释?

jquery javascript-events event-delegation jquery-on

11
推荐指数
1
解决办法
2839
查看次数

以编程方式更改复选框不会触发更改事件

我在这里有以下代码:

$('input[type="checkbox"][id="gridlines"]').change(function () {
    alert('hello world');
});

$('#gridlines').prop('checked', true);
Run Code Online (Sandbox Code Playgroud)

当我加载页面时,选中复选框,但不会提示"hello world"

但是,当我手动单击复选框时,会出现"hello world"

是什么赋予了?

javascript jquery javascript-events

11
推荐指数
2
解决办法
2723
查看次数

当Firefox中的鼠标嵌入iframe时,防止父页面滚动

...不限制iframe内的滚动或需要专门命名/标记所有可滚动元素.

想象一下嵌入在父页面中的谷歌地图小部件.放大窗口小部件时,显然不希望父页面滚动.

我以为我前一个问题的答案解决了这个问题:

在iframe内滚动时,身体对那里发生的事情一无所知.但是当iframe卷轴到达底部或顶部时,它会滚动到正文.

取消从iframe传播的事件.

但该解决方案在Firefox中不起作用,因为Firefox不会 - 按设计 - 将iframe捕获的事件传播到父页面,但奇怪的是它会滚动父页面.在这里看到jsfiddle.

$('body').bind('mousewheel DOMMouseScroll', onWheel);

function onWheel (e){
    if (e.target === iframe)
        e.preventDefault();
    console.log(e);
}
Run Code Online (Sandbox Code Playgroud)

那么,当用户在Firefox中缩放嵌入式iframe中的内容时,如何防止页面滚动?

javascript iframe firefox javascript-events mousewheel

11
推荐指数
1
解决办法
6004
查看次数

我怎么知道removeEventListener成功了?

有没有办法确认revmoveEventListener是否成功?我正在视频元素上使用它进行"播放"/"暂停"事件.我试图实现的行为似乎不一致.这是我如何使用它的一个例子.

var playListener = function(){
  console.log("video is playing") 
}

videoElement.addEventListener("playing", playListener)
Run Code Online (Sandbox Code Playgroud)

在我的代码中的其他地方

videoElement.removeEventListener("playing", playListener)
Run Code Online (Sandbox Code Playgroud)

playListener可用于我正在使用removeEventListener并且我传递视频元素的id所以它与我添加事件监听器的视频元素相同.

我想知道我是否可以使用某种console.log或确认removeEventListener工作的东西.

javascript javascript-events

11
推荐指数
1
解决办法
2950
查看次数