jq下拉框选中事件就没有单独的事件么?????

在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
首先有一个select控件:
&div id="courseDiv"&
&select id="isAlready"&
&option value="already"&已选&/option&
&option value="notYet"&未选&/option&
&!-- 其他的代码忽略... --&
在下面的方法里为控件绑定onchange事件的处理函数:
function showCourseDiv(studentId) {
//用了flexigrid控件,与问题无关,可以忽略之
$("#courseFlexGrid").flexOptions({
addparams : [{
name : "studentId",
value : studentId
}).flexReload();
//这里绑定的事件方法!
$("#isAlready").change(function() {
//调用填充flexigrid的方法,使用了闭包
//searchCourseFlexGrid()的代码就不贴了
searchCoursesFlexGrid(studentId);
//显示包含select控件的div,自己封装的
//与问题无关,代码忽略了
showCustomDiv(true, 'courseDiv');
主要的流程是这样的:
所有学生记录都使用同一个courseDiv来添加/删除课程,点击一个学生的“选课/删课”按钮后,执行showCourseDiv(studentId)方法:显示courseDiv,把学生的已选课程都展示出来,然后绑定onchange事件处理函数searchCoursesFlexGrid(studentId)。在事件函数里,会根据传来的studentId参数和select控件的值,查询对应学生的已选or未选课程。
遇到的问题是这样的:
点击给学生1(假设studentId=1001)的"选课/删课"按钮,这时候会执行showCourseDiv(1001)方法,方法中给select控件onchange事件绑定了searchCoursesFlexGrid(1001)方法,这些都没有问题,下拉菜单的功能都正常。
问题在这里,之后再点击其他学生的“选课/删课”按钮,修改下拉菜单值的时候,每次都会执行searchCoursesFlexGrid(1001),参数永远都是学生1的id。
用firebug断点:
showCourseDiv()方法的参数正常,点击下拉菜单时,searchCoursesFlexGrid()参数一直是1001。
我目前只学了半个月的jQuery,js也非常不熟,这个问题纠结两天了,希望大神们帮忙解决一下 Orz
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
$("#isAlready").off('change');
最好设置全局变量current_student_id
function showCourseDiv(studentId) {
window.current_student_id = studentId;
$("#isAlready").change(function() {
searchCoursesFlexGrid();
function searchCoursesFlexGrid()
var studentId = window.current_student_
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。关于jquery下拉菜单如何做到当鼠标移到下拉部分的过程中,下拉不要消失_百度知道
关于jquery下拉菜单如何做到当鼠标移到下拉部分的过程中,下拉不要消失
关于下拉菜单,我一直没明白别人用jquery写的,如何做到当鼠标移到下拉部分的过程中,下拉不要消失,因为移除顶级菜单的时候下拉菜单是要消失的。我做了延时处理,别人没做,而且代码很简洁,我的就很复杂。
我有更好的答案
如果对象用的hover事件,就只写hover的第一个函数,比如obj.hover(function(){menu.show();........});然后再给子菜单写一个hover事件menu.hover(function(){$(this).show();},function(){$(this).hide();});
采纳率:100%
自己右键看源文件吧
1条折叠回答
为您推荐:
其他类似问题
下拉菜单的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。jquery清空 select下拉框里的所有选项要怎么写?_百度知道
jquery清空 select下拉框里的所有选项要怎么写?
我有更好的答案
直接&select&&option&&/option&&/select&select里面包含的是option标签,所以只要把select标签里面的内容清空就相当于清空它时候的所有选项了。可以这样:$(&#id&).html(&&);
采纳率:75%
这样写&select id=&search&&&option&baidu&/option&&option&sogou&/option&&/select&清空:$(&#search&).find(&option&).remove();或者$(&#search&).empty();
本回答被提问者采纳
为您推荐:
其他类似问题
您可能关注的内容
jquery的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。jquery如何触发下拉列表的change事件_百度知道
jquery如何触发下拉列表的change事件
RT,我的jquery版本是1.11.0,想做一个下拉列表二级联动,当第一个下拉列表发生改变时,带动第二个下拉列表内容发生改变,但是$(selector).change(function(){});无效,请问哪位大神有好的方法?
我有更好的答案
建议调试下javascript,目测是由于前面的javascript代码出问题了。打开console看看有无报错。
采纳率:59%
$(&#id&).live(&change&,function(){ })试试这个
你确定你的selector写对了么?
id选择器啊,有啥不对的
&select id=&test&&
&option value=&1&&1&/option& &option value=&2&&2&/option&&/select&$('#test').change(function(){
alert($(this).val());});这样都没效果?
对了,我第一个下拉列表里的option是动态生成的
不管你动态的也好静态的也好,你可以用浏览器查看页面代码,这个最直接
我刚才换了谷歌浏览器,发现没问题。。难道IE不支持change方法?
你写个最简单的 例如我上面写的那段代码来验证下 IE支持不支持理论上来说是支持的
为您推荐:
其他类似问题
jquery的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。如何利用jq移除绑定在select下拉框的onchange()事件?_百度知道
如何利用jq移除绑定在select下拉框的onchange()事件?
第一次点击触发时间,第二次不想再触发了,利用.unbind()不好使,还有别的方法么?
我有更好的答案
用$(&#selectAddress&).one(&change&,function(){})这种绑定事件,就只会执行一次
采纳率:82%
为您推荐:
勃兰兑斯的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 jq 下拉框改变事件 的文章

 

随机推荐