是任何人能够对执行产生的Ajax。ActionLink当户按键盘上? (这是需要accessibility)

注:我在使用ASP.NET 视+微软雅库(...Ajax.js /...MvcAjax.js)+jQuery

Javascript捕捉按键(即+Firefox)

$(document).keypress(function(event) {
    if(event.keyCode == 27) {
        //execution here
        var a = document.getElementById('linkid');
    }
});

Html产生的ASP.NET 视(阿贾克斯。ActionLink())

<a id="linkid" href="/controller/action" onclick="
Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event), 
{ insertionMode: Sys.Mvc.InsertionMode.replace, 
updateTargetId: 'SomeDivId' });
">LinkText</a>

以下是不是我在寻找什么,这不工作!

$(document).keypress(function(event) {
    if(event.keyCode == 27) {
        var a = document.getElementById('linkid');
        a.onclick();           //doesn't exist in Firefox
        a.click();             //doesn't "work" in Firefox (reference to "this" [a] is needed .NET MVC javascript)
        a["onclick"]();        //same as .onclick()
        a["click"]();          //same as .click()

        //or even:
        a.onclick.apply(a);    //doesn't exist in Firefox
        a.click.apply(a);      //Somehow keeps "this" reference, but throws Sys.ArgumentUndefinedException
    }
});    
有帮助吗?

解决方案

你有没有尝试过利用google i/o大会的触发机制?

$(document).keypress( function(e) {
    if (e.keyCode == 27) {
       $(this).trigger('click');
    }
}

如果做不到这一点,你可以调用的href,这将做一个完整的回发的,但应当完成所需的行动,如果行动是书面处理阿贾克斯和非阿贾克斯的请求。

$(document).keypress( function(e) {
    if (e.keyCode == 27) {
       location.href = $(this).attr('href');
    }
}

其他提示

请尝试这样:

            var a = document.getElementById('linkid');
        $(a).trigger('click');
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top