以下のコードで興味深い問題が発生します。
<html>
<head>
<meta charset="UTF-8"/>
<script src="jquery-1.3.2.min.cache.js">
</script>
<script>
$(function(){
var c = function(){
console.log('checked:' + $('#test').attr('checked'));
};
$('#test').click(c);
});
</script>
</head>
<body>
<input id="test" type="checkbox" value="1">test
</input>
</body>
</html>
問題は、チェックボックスを手動でクリックしたときに印刷されることです
checked:true
checked:false
checked:true
checked:false
....
しかし、次のようなjsコードでクリックイベントをトリガーすると:
$('#test').click()
のように印刷されます
checked:false
checked:true
手動でクリックしたように聞こえますが、チェックボックス自体がオン/オフとしてレンダリングされ、クリックイベントがトリガーされます。
しかし、 の JS コードの.click()
場合はそうではありません。
私の推測は正しいですか?ヘルプのために参照できるドキュメントはありますか?