jquery 函数根本不触发

2023-12-25

真正的愚蠢问题。我想我现在应该已经明白了这一点,但我显然错过了一些东西。我希望我的函数在页面加载后立即触发,以检查变量的值,并根据该值使按钮出现或消失。但我写的函数永远不会被调用。我将该函数放置在 $.Load() 和 $(document).ready jquery 调用中。我怎样才能触发这个功能?

 $(document).ready(function () {
        debugger;        
        (function () {           
        debugger;
        var $b = '<%=toggle %>';
        var buttonTog = $("#test1");
        var buttonTog1 = $("#Submit1");
        if($b=="1")
        {
            debugger;
            buttonTog1.css({
                display: 'block'
            })
            buttonTog.css({
                display: 'none'
            });
        }
        else if($b=="0")
        {
            debugger;
            buttonTog1.css({
                display: 'none'
            })
            buttonTog.css({
                display: 'block'
            });
           }            
       });
       ...
    });

正如您所看到的,我在那里有多个调试器语句,只是没有被命中...当我点击 $(document).ready 并进入第一个调试器语句时,它根本不会触及下一个函数?我不明白?它就在它上面吗?不能在 .ready(function()) 中调用函数吗?绝对需要完成一些研究。


您定义了一个匿名函数,但从未调用它。自动调用匿名函数的方法如下:

$(document).ready(function () {
    (function() {
        var buttonTog = $("#test1");
        var buttonTog1 = $("#Submit1");
        ...
    })(); // <!-- notice the (); at the end
});

话虽这么说,我几乎看不出在内部使用这个匿名自动调用函数的用处。document.ready回调本身就是一个匿名函数。这里的事情开始变得非常私密:-)

您可以简单地在其中编写代码:

$(document).ready(function () {
    var buttonTog = $("#test1");
    var buttonTog1 = $("#Submit1");
    ...
});

我怀疑您可能错过了一些关于$(document).ready函数及其语法。我建议你检查一下文档 http://api.jquery.com/ready/了解更多示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jquery 函数根本不触发 的相关文章

随机推荐