2011-07-27 55 views
1

我有一个列表,当用户使用onchange事件选择一个特定的选项(名为Customize)时,弹出一个div(id为customizeOption),一旦用户完成了div /她会点击一个按钮(ID为donebtn)。拥有这样的功能并使用onchange事件是否好主意?任何其他建议真的很感激。与jQuery使用onchange事件

function optionCheck(events) { 

    if(events.value=="Customize") { 
     $('document').ready(function() { 
      $("#customizeOption").show(400); 
      $("#donebtn").click(function() { 
       $("#customizeOption").hide(400); 
      }); 
     }); 
    } 
} 

回答

1

$('document').ready(function() {});

这只是为了模仿人体的onload

我们可以重写上面的代码。

function optionCheck(events) { 
    if(events.value=="Customize") { 
     $("#customizeOption").show(400); 
     $("#donebtn").click(function() { 
      $("#customizeOption").hide(400); 
     }); 
    } 
} 

请确保您在编写DIV之后编写此代码。当你的浏览器编译这个JS时,它们也可用。我建议这个脚本应该放在页面的底部。


EDITED

假设选择框有类mySelectBox,下面的函数会为你工作,如果你把它放在代码中的任何地方。

$('document').ready(function() { 
    $('.mySelectBox').change(function(){ 
     if($(this).attr('value')) == "Customize") { 
      $("#customizeOption").show(400); 
      $("#donebtn").click(function() { 
       $("#customizeOption").hide(400); 
      }); 
     } 
    }); 
}); 
+0

感谢您的回答。既然这是一个函数,你为什么建议它应该放在页面的底部。正如你所知,一个函数只有在被调用时才会执行。目前我在js文件中有这个功能,并且包含在我的文档的头部。再次感谢您的帮助 – Tim

+0

在'line#4'语句'$(“#donebtn”)'是一个JQuery函数,它将获得这个'ID'的元素。因此,如果我们将该查询放置在页面的顶部,该函数将无法找到该元素,并且不会将'click'函数绑定到所需的元素。在这种情况下,我们使用'.live(eventType,handler)' –

+0

非常感谢您的回复。这就是为什么最初我在document.ready()函数内部拥有所有语句。所以,如你所知,这些陈述只会在所有dom对象被加载时才会被执行。所以在我们的btn的情况下,绑定click函数将定位元素。这是只有当我离开doucment.ready函数,因为我最初发布。如果我错了,请纠正我。谢谢 – Tim