如何选择jQuery生成的元素?

时间:2011-06-02 11:59:27

标签: javascript jquery

我正在尝试使用由js生成的元素激活slideDown()onclick。

我从ryanfait.com下载了一个脚本,允许您自定义单选按钮的外观。这工作正常,但当我尝试将一个动作应用于生成的元素(在这种情况下是一个跨度)时,它不起作用。我该如何解决这个问题?

这是我的HTML:

<div class="radiocont">
                                <label>Yes</label>
                                <input type="radio" class="styled" value="yes" name="watertank" />
                            </div>
                            <div class="radiocont">
                                <label>No</label>
                                <input type="radio" class="styled" value="no" name="watertank" />
                            </div>

当DOM加载时,输入被替换为如下所示的跨度: <span class="radio" title="yes" style="background-position: 0pt 0pt;"></span>

当您点击其中一个跨度时,我想激活slideDown()。这是我的js:$('[title="yes"]').click(function() { $(this).nextAll('.secondq:first').slideDown('slow'); });

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:6)

使用.live.delegate “为现在和将来与当前选择器匹配的所有元素附加事件的处理程序。”

// .live()
$('[title="yes"]').live("click", function() { 
    $(this).nextAll('.secondq:first').slideDown('slow'); 
});

// .delegate() (not entirely sure of your structure, the below may need
// to be modified accordingly
$('.radiocont').delegate("span[title='yes']", "click", function() { 
    $(this).nextAll('.secondq:first').slideDown('slow'); 
});