2013-03-12 54 views
3

我已经复制了相同的示例表格jquery网站在jQuery中实现change()的功能。如果<script>..</script>被剪切并粘贴在头部,则该功能根本不需要改变选择值。有什么理由我应该在select下写这个片段吗? This是我把<script>部分放在标题中的小提琴。默认代码是this one写在头部的jQuery功能不叫

+0

您必须在加载DOM后加载JS,并且不会显示您r代码,所以...代码的样子是什么? – Jon 2013-03-12 09:23:58

+0

在一会儿张贴一个小提琴 – NewUser 2013-03-12 09:29:32

回答

1

尝试围绕功能(同时仍然在头)有:

$(document).ready(function(){ 

    //Your code here 

}); 
+0

我不得不绑定这些元素。谢谢.. :) – NewUser 2013-03-12 09:46:24

1

如果你把脚本的头块,那么页面可能没有完成加载在执行之前。 jquery有一个机制来处理这个问题,即在文档准备就绪时运行脚本。这是按如下方式完成的:

$(document).ready(function(){ 

    $('.target').change(function() { alert('Handler for .change() called.');}); 

}); 

ready函数内部的任何代码将在文档完全加载后被调用。几乎所有的jQuery代码都是这样调用的。

+0

谢谢。您的解决方案奏效 – NewUser 2013-03-12 09:46:47

2

我怀疑你的问题是你的DOM没有准备好。当内部jQuery的DOM的工作,你应该绑定document元素的ready()功能,如下所示:

$(document).ready(function() { 
    // execute your code here. 
}); 

或者,也可以使用快捷键的功能如下:

$(function() { 

}); 

为了您的例子中,更新head中的代码应如下所示:

<script type="text/javascript"> 
$(function() { 
    $('#select_id').change(function() { 
     // handle the change event 
    }); 
}); 
</script> 
+0

+1并感谢您的解释。 – NewUser 2013-03-12 09:47:29

+0

如果他们有帮助,您可能需要选择其中一个答案。 – BenM 2013-03-12 10:22:26

+0

嗯..我会接受一个肯定的答案。如果我没有得到任何答案,我会在接下来的4到5小时内完成。如果我现在会接受一个答案,那么人们会不太愿意给出另一种选择。感谢您的建议。 – NewUser 2013-03-12 10:25:45