1

DOM 要素でクリック イベントを発生させることができません。

これは私の js ファイルです: app.js。ここで何かが足りないか間違っていると確信していますが、どこにあるのかわかりません。

var App = Backbone.View.extend({

    el: $('body'),

    initialize: function() {
        _.bindAll(this, 'sayHello');
    },

    events: {
        'click .link': 'sayHello'
    },

    sayHello: function(e) {
        alert('Hello!');
    }

});

var app = new App();

これが私の HTML ファイル index.htm です。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title></title>

    <script type="text/javascript" src="assets/js/jquery-1.8.3.min.js"></script>
    <script type="text/javascript" src="assets/js/underscore-min.js"></script>
    <script type="text/javascript" src="assets/js/backbone-min.js"></script>

    <script type="text/javascript" src="assets/js/app.js"></script>

</head>
<body>

<a href="#" class="link">Click here!</a>

</body>
</html>
4

2 に答える 2

2

これは確かにトリッキーでした。コードを論理的に考えます。JS スクリプトはhead.

jQuery セレクターel: $('body')はまだ存在しません。(JavaScript はすぐに実行されます)。やってみてくださいel: 'body'

于 2012-12-01T00:40:07.993 に答える
0

dom load イベントでビューを初期化する必要があります。

var App = Backbone.View.extend({

    initialize: function() {
        _.bindAll(this, 'sayHello'); // you don't need this for your code to work
    },

    events: {
        'click .link': 'sayHello'
    },

    sayHello: function(e) {
        alert('Hello!');
    }

});


$(function(){
  var app = new App({el: $("body")});
});
于 2012-12-01T14:58:51.977 に答える