0

確かにJQueryについてはよくわかりませんが、AJAXフォームがあり、誰かが送信ボタンをクリックしたときにクリックイベントをトリガーする必要がありますが、ボタンは最初はありませんが、同じフォームの3ページ目にあります(URL変更されません)、クリックイベントの使用に問題があります。

私のコードでは、ボタンがクリックされたときに関数を実行したいだけです。

<script type="text/javascript">
    //Run function when button is clicked

    $(document).ready(function () {
        $("#idOfButton").click(function () {
            doSomething();
        });
    });

    //The function I want ran when page visitor clicks button

    function doSomething() {
        //Do Something
    }
</script>

明らかにこのコードは機能しませんが、.clickの使用方法に関する提案はありますか?タグ管理システムを介してのみJSを挿入できるため、ページに何もハードコーディングできません。また、JQueryのバージョンは1.4なので、.onは使用できません。ご協力いただきありがとうございます。

4

3 に答える 3

1

ボタンが使用可能になったときにイベントがバインドされるように、コードで.onを使用する必要があります。使用可能な最新のjQueryファイルがない場合は、代わりに.liveを使用できます。 PageLoadで利用可能です。そこで、チェックボックスがオンになっているときにボタンを作成する小さな例を作成しました。ボタンが作成された後、イベントハンドラーを追加しています。Chekcthis

       <script type="text/javascript">


     <script type="text/javascript">
    //Run function when button is clicked

    $(document).ready(function () {
        $("#idOfButton").live('click', function () {
            doSomething();
        });
    });

    //The function I want ran when page visitor clicks button

    function doSomething() {
        //Do Something
    }
</script>

ここでFIDDLEを確認してください。また、最新のコピーがない場合は、googleCDNによってホストされているファイルを使用できます。このファイルをプロジェクトに含める必要があります。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>

これにより、最新のコピーが確実に作成され、サイトの帯域幅も削減されます。

于 2012-09-13T15:36:34.043 に答える
0

したがって、ボタンが最初のページの読み込み時にあり、AJAXされたページの何かに影響を与えることを意味すると仮定します。その場合、jQueryは明らかに存在しないHTML要素をターゲットにすることはできません。

代わりに、get変数などの何かをAJAX呼び出しに渡す必要があります。新しいget変数を受け入れたり、ロジックを変更したりするなど、目的のページについて何も編集できない場合は、制約を考慮すると、この問題は解決できないように思われます。

于 2012-09-13T15:40:25.037 に答える
0

最初のページの読み込み時にボタンがない場合は、ボタンを作成した直後にコールバックを割り当てる必要があります。例えば:

    var newButton = document.createElement('button');
    $(newButton).on('click',doSomething);
于 2012-09-13T15:46:04.077 に答える