真正愚蠢的问题。我想我现在已经这么做了,但我显然错过了一些东西。我希望我的函数在页面加载时立即触发,以检查变量的值并根据该值使按钮显示或消失。但我写的函数永远不会被调用。我将函数放在$ .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'
});
}
});
...
});
正如你所看到的,我在那里有多个调试器语句,只是没有被击中...当我点击$(文档).ready并进入第一个调试器语句时,它根本没有触及下一个功能?我不明白吗?它顺着它?你不能在.ready(function())中调用一个函数吗?绝对需要完成一些研究。
答案 0 :(得分:9)
您定义了一个匿名函数,但您从不调用它。以下是自动调用匿名函数的方法:
$(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
函数及其语法的重要概念。我建议您查看the documentation以获取更多示例。
答案 1 :(得分:3)
只需删除(function () {
,即});
即可
答案 2 :(得分:2)
你已经定义了你的功能,但你从来没有打过它。叫它。
function doSomething () {
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'
});
}
});
然后
$(function(){
doSomething(); // here, you've executed your function
});
答案 3 :(得分:2)
这将完美地运作......
HTML
<input type="button" value="One" id="test1" />
<input type="button" value="Two" id="Submit1" />
的Javascript
$(document).ready(function () {
var $b = '1';
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'});
}
});