0

index.php:

<html>
    <head>
        <script type="text/javascript" src="script.js"></script>
    </head>
    <body>
        <div id="box"></div>
        <div onclick="getContent()">Open Window</div>
    </body>
</html>

script.js:

function getContent() {
    //ajax call that returns the html from content.php and places it in the box div
}
function sayHello() {
    console.log('Hello');
}
function sayGoodBye() {
    console.log('Good Bye');
}

content.php:

<div onclick="sayHello()">Say Hello</div>
<div onclick="sayGoodBye()">Say Good Bye</div>

関数 sayHello() と sayGoodBye() を機能させる正しい方法は何ですか? 現在、彼らは何もしません。

4

2 に答える 2

1

要素はajaxから取得され、#box動的に追加されるため、デリゲートイベント処理が必要です。

$('#box').on('click', '#newElement', function() {

});

デリゲートの構文.on()は次のとおりです。

$(container).on(eventName, target, handlerFunction);

トリガーするには、を使用する必要があります

$('#box div').eq(0).click(); // sayHello()

$('#box div').eq(1).click(); // sayGoodBy()

ノート

正常に動作するはずだと思います

ここを見て

また、これらのクリックイベントをトリガーすることも可能です

これをチェックして

于 2012-06-10T09:48:32.753 に答える
0

ファイル index.php、script.js、content.php を同じフォルダに保管してください。

index.php

<html>
    <head>
        <script type="text/javascript" src="script.js"></script>
    </head>
    <body>
        <div id="box"></div>
        <div onclick="getContent()">Open Window</div>
    </body>
</html>

script.js

function getContent() {
    //ajax call that returns the html from content.php and places it in the box div
    $.ajax({
        url: 'content.php',
        success: function(data) {
            $('#box').html(data);
        }
    });
}

function sayHello() {
    console.log('Hello');
}

function sayGoodBye() {
    console.log('Good Bye');
}

content.php

<?php

$strContent="";
$strContent.="<div onclick='sayHello()'>Say Hello</div>";
$strContent.="<div onclick='sayGoodBye()'>Say Good Bye</div>";

?>
于 2012-06-15T14:44:30.593 に答える