0

これが私のコードです:

$("#addhash").submit(function(event) {
        // Cancel the default action
        event.preventDefault();

        // Store the value and remove any white space or disallowed chars
        var hash = $("#hashtoadd").val().replace(/\s/g, "").replace(/\W/g, "");

        // Check if anything was entered
        if(hash) {
            // Add the hashtag to the array
            hashes.push(hash);
            localStorage.hashes = JSON.stringify(hashes);
            var key = hashes.length - 1;

            // Clear the form field
            $("#hashtoadd").val("");

            // Set others to inactive
            $("#hashes").children().removeClass("active");

            // Add it to the list and make it the active page
            $("#hashes").append("<li class='active' id='" + key + "'><a href='#' class='close'>&times;</a><a class='hashtag' href='#" + hash + "'>#" + hash + "</a></li>");

            // Load the tweets
            getTweets(hash);
        }
});

このコードは Chrome でのみ機能します。event.preventDefault();発砲すらしていないように見えます。最初に警告ダイアログを配置しようとしましたが、どちらも表示されないため、ここに到達することさえないと信じています. click ()イベントだけを使ってみたり、イベントだけを使ってみたりしましたが、どちらもうまくいきsubmit()ません。

編集:問題は、イベントハンドラーが他のブラウザーで呼び出されないことだと思います。現在の状態を反映するようにコードを更新しました。それでも動作しません。

EDIT2:要求されたとおり、フォーム自体は次のとおりです。

<form class="navbar-form pull-right" id="addhash">
    <div class="input-prepend input-append">
        <span class="add-on">#</span>
        <input type="text" placeholder="tag" tabindex="1" id="hashtoadd">
        <button class="btn" type="submit" href="#" id="submit"><i class="icon-plus"></i></button>
    </div>
</form>
4

1 に答える 1

0

これがまさにあなたの問題かどうかはわかりませんが、

「jQuery 1.7 の時点で、.live() メソッドは非推奨です。.on() を使用してイベント ハンドラーをアタッチします。」

.live は、選択したオブジェクトが .bind() を使用できる他のすべての場合、またはフォーム .submit() の場合に DOM に存在しない場合にのみ使用する必要があります。

于 2013-01-04T17:16:18.260 に答える