我正在尝试使用由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');
});
有人可以帮忙吗?
答案 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');
});