jQuery .change()没有触发

时间:2011-03-04 12:01:31

标签: javascript jquery

只是将一些小页面作为一个更大的项目的元素,并且我对我目前的问题感到困惑的是我的代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<STYLE TYPE="text/css">
  .questionBlock { font-size: x-large; color: red }
</STYLE>

<script type="text/javascript">
$(document).ready(function() { 
alert("sdsd")
$("input[@name='questionType']").change(function(){
    alert("dfdfdf");
    var selected = $("form input:radio:checked").val();
    alert(selected);
})
});

</script>

<form action="">
<input type="radio" name="questionType" value="closed" /> Closed Endeded<br />
<input type="radio" name="questionType" value="matrix" /> Matrix Question<br />
<input type="radio" name="questionType" value="open" /> Open Ended
</form>

<div class="questionBlock" id="closed">lol</div>
<div class="questionBlock" id="open">rol</div>
<div class="questionBlock" id="matrix">bol</div>

但是改变事件永远不会触发,无论浏览器如何,我都尝试过使用绑定,但它正在推动我的发展!

3 个答案:

答案 0 :(得分:5)

jQuery attribute selectors不需要@前缀(如XPath)。像这样更改你的代码:

$("input[name='questionType']").change(function(){

Here是一个有效的版本。

答案 1 :(得分:1)

您需要删除@ fiddle

$(document).ready(function() { 

    $('input[name="questionType"]').change(function(){
        alert("dfdfdf");
        var selected = $("form input:radio:checked").val();
        alert(selected);
    })
    });

答案 2 :(得分:0)

jQuery不再在Xpath风格的attr选择器中使用“@”。在这种情况下,您的选择器与任何东西都不匹配。