4

我似乎无法弄清楚如何做到这一点,但我正在创建按钮,单击时将新 div 添加到包含文本框的页面。这很好用,但我想要做的是,如果用户单击 div,我希望 div id 会在警报框中弹出。代码如下。

HTML

     <table>
     <td>
     <ul id ="firstColumn">
                    <div id="identifier">
                    </div>
                </ul>
            </td>
            <td>
                <ul id ="secondColumn" width="5%">
                    <li><input type="button" class="formCreationButton" id="textAdd"       value="Single line text" /></li>
     </td>
     <ul>
     </table>

添加 div 和文本框的 jQuery 如下,可以正常工作。

   $('#textAdd').click(function() {
                var newdiv = document.createElement('div');
                newdiv.innerHTML = "Textbox " + textBoxCounter + " <br><div id='container "+counter+"' class='container'><li><input type='text' value='TEXT' name='textBox " + textBoxCounter +"onclick='display(this)'></li></div></br>";

                document.getElementById("identifier").appendChild(newdiv);
                textBoxCounter++
                counter++;
            });

所以每次我点击按钮时都会创建一个新的 div 和文本框。我现在要做的是,当用户单击 div 时,将弹出一个警报框,其中包含单击的 div 的 id。显然,这不是我唯一想做的事情,而是我坚持的部分,下面是我的尝试。

     $(".container > div").click(function(){
                var divID = this.id;
                alert(divID);
                // do other stuff that needs to be done
            });

当我点击一个 div 时,唯一发生的事情是弹出一个警告说“内容”。我需要它包含“container1”或“container2”等内容。

无论如何,提前感谢您提供的任何帮助,非常感谢。对 jQuery 来说相当新,所以在其他人看来很简单的事情上遇到困难。

4

2 回答 2

3

.onAPI 可以解决问题:http: //api.jquery.com/on/ 演示 http://jsfiddle.net/eqDKP/1/

另请注意,html 表缺少tr标记。

希望这可以帮助:)

代码

   $(".container > div").on('click',function(){
                var divID = this.id;
                alert(divID);
                // do other stuff that needs to be done
            });
于 2012-07-12T11:25:45.117 回答
2

click您应该为新创建的元素委托事件:

.on( 事件 [, 选择器] [, 数据] , 处理程序(eventObject) )

$(".container").on('click', "div", function(){
     var divID = this.id;
     alert(divID);
});
于 2012-07-12T11:26:12.230 回答