两次点击以执行requirejs的按钮操作?

时间:2015-09-11 19:41:27

标签: javascript jquery events

我有这段代码:

的index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="lib/require.js" data-main="app"></script>
</head>
<body>
<button id="remover">Remove</button>
</body>
</html>

app.js

require.config({
    paths: {
        'jquery': 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min',
        'mylib': 'applib/mylib'
    }
});

require(['mylib'], function(teller){
    teller.tell('Hello there');

    $(function(){
        $('#remover').on('click', function(){
            teller.remove();
        })
    })
});

mylib.js

define(['jquery'], function($){
    var tell = function(msg){
        $('body').append( $('<p>').text(msg).addClass('teller') );
    };

    var remove = function(){
        $('#remover').on('click', function(){
            $('body').find('.teller').remove();
        });
    };


    return {
        tell: tell,
        remove: remove
    }
});

我不明白,为什么按两次按钮才能删除该元素。有谁可以向我解释一下?

1 个答案:

答案 0 :(得分:0)

你在mylib.js中的删除功能也不需要监听点击,因为你已经在app.js中听取了点击。

您可以将删除功能更改为:

var remove = function(){
    $('body').find('.teller').remove();
};