2012-12-30 51 views
0

我在这里遇到问题。首先对标识码:选择标签点击,jQuery不“注意”

<input type="radio" name="user_by_list" value="" id="userbylist"/> 
<div id="userbylist1"> 
    <select> 
     <option value="1">1</option> 
     <option value="2">2</option> 
    </select> 
</div> 
<input type="radio" name="user_by_text" value="" id="userbytext"/> 
<div id="userbytext1"> 
    <input type="text" value=""/> 
</div> 

这是我的jQuery代码:

$("#userbylist").click(function() { 
    $("#userbytext").prop('checked', false); // for unchecking the opposite radiobutton 
}); 
$("#userbytext").click(function() { 
    $("#userbylist").prop('checked', false); // for unchecking the opposite radiobutton 
}); 

$("#userbylist1").click(function() { // for clicking the whole div 
    $("#userbylist").prop('checked', true); // checking #userbylist radiobutton 
    $("#userbytext").prop('checked', false); // unchecking #userbytext radiobutton 
}); 
$("#userbytext1").click(function() { // for clicking the whole div 
    $("#userbytext").prop('checked', true); // checking #userbytext radiobutton 
    $("#userbylist").prop('checked', false); // unchecking #userbylist radiobutton 
}); 

现在的问题是,当我在选择标签点击获取div的单选按钮来检查,这不是不起作用,但是当我点击文本输入区域时,它工作正常。当你点击整个div时,它会根据什么函数进行检查和取消选中,以便工作正常。我已经尝试为所有选项设置类,并且还在整个<select>标记上设置了一个ID。这里有帮助吗?

PS。如果你不明白,虽然我试图尽我所能解释问题,但我已经设置了an example page

+0

这对我的作品在Firefox和Chrome上。你有什么浏览器遇到问题? –

+0

你使用IE吗?在哪种模式下? –

+0

我使用Chrome也很奇怪。 – finst33

回答

0

我认为点击不起作用的原因是因为选项菜单弹出窗口阻止了up点击的一部分发生在与发生向下部分相同的元素上。

作为替代方案,.change()将运行功能如果选定的价值变化和.mousedown()就会立即运行功能,你按下鼠标的选项列表:

$("#userlist2").change(function() { 
     $("#userlist").prop('checked', true); 
     $("#usertext").prop('checked', false); 
    }); 

    ... 

    <select id="userlist2" name="userlist2"> 
     <option value="none">Select user</option> 
     <option value="none">-----------</option> 
     <option value="1">Mike007</option> 
     <option value="2">UrbanSurban01</option> 
    </select> 
+0

使用mousedown()。谢谢! – finst33

+0

很高兴有用。感谢我的第一个接受! – mgamba