0

嗨,我开始学习 jquery,我阅读了教程并构建了我的代码,但我想知道为什么这段代码在我的页面上不起作用:

<script src="jquery-1.9.1.js"></script>  
<script src="jquery-ui.js"></script>
<script src="jquery-min.js"></script>
<script type="text/javascript">
  $("#storage").change(function(){
    alert("sample ng onchange");    
  });
</script>


<tr><td><s:text name="label.storageArea" /></td>
<td><s:select  name="mediaBean.storageAreaDesc" 
            list="storageAreaList"              
            value="%{mediaBean.storageAreaDesc}" 
            size="1" style="width:155px;" 
            theme="simple" id="storage" />
</td>   
</tr>

请帮忙。谢谢你。

这是生成的标签 HTML:

<select name="mediaBean.storageAreaDesc" size="1" id="storage" style="width:155px;">
    <option value="1 - Storage 1" selected="selected">1 - Storage 1</option>
    <option value="2 - Storage 2">2 - Storage 2</option>
    <option value="3 - Storage 3">3 - Storage 3</option>
</select>
4

3 回答 3

2

因为您的脚本在 HTML 之前,所以将其包含在DOM ready handler. 这可以确保脚本在 DOm 加载后运行。

<script type="text/javascript">
  $(function() {
      $("#storage").change(function(){
         alert("sample ng onchange");    
      });
   });
</script>
于 2013-05-23T00:46:02.433 回答
1

也许您需要将 js 代码包装在 jquery 文档就绪块中

请参阅http://api.jquery.com/ready/Jquery 选择更改

于 2013-05-23T00:45:38.053 回答
0

首先,将所有 js 放在页面底部并使用它来包装代码

;(function($) {
    $(document).ready(function() {
        // Stuff to do as soon as the DOM is ready. 
        // Use $() w/o colliding with other libs;
    })
})(jQuery);
于 2013-05-23T00:48:41.277 回答