MooTools:专注于点击

时间:2009-11-25 20:22:10

标签: asp.net javascript mootools

我有一个包含复选框的ASP.NET控件。我希望焦点在单击时保留在此复选框上。这是我正在使用的:

<script type="text/javascript">
    window.addEvent("domready", function() {

        var acceptCheckId = $("<%= this.accept.ClientID %>").getElement("input");

        acceptCheckId.addEvent("click", function() {
            acceptCheckId.focus();
        });

    });
</script>

我可以将复选框元素放入acceptCheckId变量中,但是当我点击它时,焦点不会改变。是什么给了什么?

如果我添加警报,则警报永远不会触发:

    acceptCheckId.addEvent("click", function() {
        alert("foobar");
        acceptCheckId.focus();
    });

2 个答案:

答案 0 :(得分:0)

您的输出HTML是什么样的?不知道你的&lt; %%&gt;如何知道代码是什么错误内容是写的。

<script type="text/javascript">
window.addEvent("domready", function() {

    var acceptCheckId = $("<%= this.accept.ClientID %>").getElement("input"); 
    // $('elementId').getChildren('input');
    // You can't put an entire element in there                                                 

    acceptCheckId.addEvent("click", function() {
        acceptCheckId.focus();
    });

});
</script>

答案 1 :(得分:0)

尝试使用setTimeout

setTimeout(function(){
  acceptCheckId.focus(); // this may execute ok 
},200);

单击一个元素时,该元素将获得焦点,并且您现在无法聚焦其他元素,因为此元素将首先获得焦点,并且使用setTimeout,可能会延迟某个时间,在此之后,你可以将焦点设置为任何元素。

查看点击执行顺序: 点击 - &gt;执行onclick功能 - &gt;获得焦点 - &gt;

在步骤2中,onclick函数,你将焦点设置为其他元素,但是,在执行onclick函数后,元素本身应该得到焦点,这是由web浏览器完成的!