0

(この記事のタイトルがわかりません。)

次のコードを検討してください。テキストを削除して新しいボタンを挿入するボタンがあります。新しいボタンは正常に挿入されますが、クリックしても何も起こりません (単純なポップアップが表示されます)。Firebug は役に立ちません。$(document).ready の使用方法について何か知らないと思います。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>tre.html</title>
<script type="text/javascript"  src="..../jquery-1.8.3.js"></script>
<script type="text/javascript">
function resetButton() {
    $('ul.eventlist button.reset')
        .unbind('click')
        .bind('click', function(event) {
        event.preventDefault();
alert($(this).parent().html());
alert('mario');
});
}
function removeButton() {
    $('ul.eventlist button.remove')
        .unbind('click')
        .bind('click', function(e) {
        e.preventDefault();
var reset = $('<li><button class="reset" ><span>Reset</span></button> New text</li>'); 
$(this).parent().parent().append(reset);
$(this).parent().remove();
});
}
</script>
<script type="text/javascript">
$(document).ready(function() {
   removeButton();
   resetButton();
      });
</script>
</head>
<body>
<ul class="eventlist">
<li><button class="remove"><span>Delete</span></button> Some Text
</li>
</ul>
</body>
</html>
4

2 に答える 2

3

関数を呼び出すときのドキュメント準備完了関数内にはresetButton()、リセットボタンは存在しません。removeButton()リセット ボタンが作成された後、内でその関数を呼び出す必要があります。

例えば:

function removeButton() {
    $('ul.eventlist button.remove')
        .unbind('click')
        .bind('click', function(e) {
        e.preventDefault();
        var reset = $('<li><button class="reset" ><span>Reset</span></button> New text</li>'); 
        $(this).parent().parent().append(reset);
        $(this).parent().remove();
        resetButton();
    });
}

ここにコードのフィドルがあります:http://jsfiddle.net/7AAws/2/

于 2013-11-10T14:40:25.953 に答える
0

ページ読み込み時のバインディング機能がね…。しかし、その時のリセットボタンは存在しません。

したがって、 removeButton() 内で resetButton() を呼び出します

于 2013-11-10T14:57:23.160 に答える