动态加载按钮的Jquery正确事件

时间:2014-04-13 11:55:11

标签: javascript php jquery

嗨,如果有以下PHP代码:

if (isset($_SESSION["kriterien"]) && count($_SESSION["kriterien"]) != 0) {
    echo "<ul>" ;       
    foreach ($_SESSION["kriterien"] as $filterkriterumkey => $filterkriterium) {
        foreach($filterkriterium as $filterkey => $filter) {
            echo '<li><p>'.$filterkriterumkey.': '.$filter.'</p><button type="button" class="buttondeletefilter" id="'.$filterkriterumkey.'" name="'.$filterkey.'"><img src="img/delete.png" alt="" /></button></li>';
        }
    }
    echo "</ul>";

}

如您所见,我生成包含特定会话元素中所有元素的HTML-List。每次添加会话元素时,我都会使用$("#listdiv").load('list.php');重新加载代码(我知道这可能不是最佳实践)。如果单击一个新添加的按钮,我必须使用哪个Jquery事件来执行某些操作?

$(document).ready(function() { $(".buttondeletefilter").click(function(){ }); }); 没有工作。

编辑:

我现在也重新加载脚本。它不完美的原因我喜欢有一个文件的脚本,但它的工作

3 个答案:

答案 0 :(得分:1)

您需要将click事件绑定到动态创建的元素:

$(document).on("click",".buttondeletefilter", function(){
        alert($(this).attr('id'));
    });

<强> Demo

答案 1 :(得分:0)

使用.on()

$(document).ready(function() {
    $(".buttondeletefilter").on("click", function(){
    });
 });

答案 2 :(得分:0)

嘿,你需要使用,但需要做一个委托。你有两个选择

1.选择按钮的任何静态父级,例如假设你的按钮位于一个名为my div的静态div中,你不会替换它。

<div class="mydiv"> dynamic buttons here ...... </div> $("mydiv").on('click','.buttondeletefilter',function(){ your code goes here... })

2.如果您没有任何静态父母,那么您可以选择这样的文件或正文

$(document).on('click','.buttondeletefilter',function(){ your code goes here }) $('body').on('click','.buttondeletefilter',function(){ your code goes here })

我总是更喜欢任何静态父级用于性能目的。

这对你来说肯定有用。 ;)