0

索引.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>

脚本.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');
}

内容.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 保存在同一文件夹中。

索引.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>

脚本.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');
}

内容.php

<?php

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

?>
于 2012-06-15T14:44:30.593 回答