0

プロジェクトの開始以来、正常に機能している js スクリプトがあります。しかし、何らかの理由でボタンをクリックしても何も機能せず、クリックイベントからの応答がなく(これは以前は機能していたことに注意してください)、何らかのエラーがあるかどうかを示すコンソールログには何も表示されません...スクリプトは単に反応しない…

HTMLは次のとおりです。

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

<form>
   <input type="text" name="signinemail" id="signinemail" placeholder="Enter Email">
   <input type="password" name="signinpassword" id="signinpassword" placeholder="Enter Password">
   <input type="submit" id ="siginsubmit" name="siginsubmit" value="Sign In">
</form>

これが私のJavaScriptです:

$(document).on('pageinit',"#sellbookpage",
    function()
    {
        $("#siginsubmit").click
            (
                function()
                {
                   alert("hello");
                }   
            );
    }
);

jQuery Mobile を使用していることに注意してください

4

4 に答える 4

1

私の問題に対する勝利の答えは、上記の投稿のいずれとも関係がありませんでした! 問題の原因は、jQuery モバイル、jQuery、および Twitter Bootstrap を使用していたことです。ブートストラップ css へのリンクをコメントアウトするとすぐに、すべてが以前と同じように機能し始めました。したがって、Twitter の Bootstrap と jQuery または jQuery Mobile のいずれかとの間に競合が存在する必要があります。

于 2013-05-29T23:20:46.877 に答える
1

このpageinitイベントは、jQuery Mobile を使用している場合にのみ利用できます。あなたはまだそれを使用していますか?それ以外の場合は、を使用する必要があります$(document).ready( ... )

于 2013-05-29T20:49:08.730 に答える
0

http://api.jquery.com/on/#on-events-selector-data-handlereventObjectから:

セレクターが提供されている場合、イベント ハンドラーは委任されていると見なされます。イベントがバインドされた要素で直接発生した場合、ハンドラーは呼び出されませんが、セレクターに一致する子孫 (内部要素) に対してのみ呼び出されます。jQuery は、イベント ターゲットからハンドラーがアタッチされている要素 (つまり、最も内側の要素から最も外側の要素) までイベントをバブルし、セレクターに一致するそのパスに沿ったすべての要素に対してハンドラーを実行します。

siginsubmitinput(子孫要素はもちろん、子孫要素を含めることはできませんid="sellbookpage")であるため、セレクター文字列は何にも一致せず、クリックイベントはsiginsubmit入力に到達しません。

これを次のように変更します。

$(document).on('pageinit', function () {
    $('#siginsubmit').click(function (e) {
        alert('hello');
        e.preventDefault();
        return false;
    });
});

作業フィドル: http://jsfiddle.net/VG3Eg/

于 2013-05-29T21:26:24.637 に答える
0

live()を使ってみましたか

$("#sellbookpage").live('pageinit', function() {
            $("#siginsubmit").click(function(){
                 alert("hello");
            });
});
于 2013-05-29T20:53:17.463 に答える