Javascript 如何选择jQuery生成的元素?

Javascript 如何选择jQuery生成的元素?,javascript,jquery,Javascript,Jquery,我试图用js生成的元素激活slideDown()onclick 我从ryanfait.com下载了一个脚本,可以让你定制单选按钮的外观。这很好,但当我尝试对生成的元素(在本例中是一个span)应用操作时,它不起作用。我怎样才能解决这个问题 这是我的HTML: <div class="radiocont"> <label>Yes</label>

我试图用js生成的元素激活slideDown()onclick

我从ryanfait.com下载了一个脚本,可以让你定制单选按钮的外观。这很好,但当我尝试对生成的元素(在本例中是一个span)应用操作时,它不起作用。我怎样才能解决这个问题

这是我的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加载时,输入将替换为如下所示的跨距:

当您单击其中一个跨度时,我要激活slideDown()。这是我的js:
$('[title=“yes”]')。单击(函数(){
$(this).nextAll('.secondq:first').slideDown('slow');
});

有人能帮忙吗

使用或“为当前和将来匹配当前选择器的所有元素将处理程序附加到事件。”

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


+1用于提及
delegate
,如果所有的输入都包含在
radiocont
div中,那么在这种情况下,这会更好。它的工作原理是:
$('.radiocont').live(“click”,function(){$(this).nextAll('.secondq:first')。slideDown('slow');})但正如您所看到的,只能通过使用父div来生成跨度。当我将其应用于
span[title=“yes”]
时,它不起作用?好的,一秒钟。如果我使用
$(.radiocont.nextAll()
,则此功能可以正常工作,但如果我使用
$(此)
,则无法激活其他所有功能。我该怎么办?+1用于提及
delegate
,如果所有的输入都包含在
radiocont
div中,这对这个场景来说会更好。它可以工作:
$('.radiocont').live(“click”,function(){$(this).nextAll('.secondq:first')。slideDown('slow');})但正如您所看到的,只能通过使用父div来生成跨度。当我将其应用于
span[title=“yes”]
时,它不起作用?好的,一秒钟。如果我使用
$(.radiocont.nextAll()
,则此功能可以正常工作,但如果我使用
$(此)
,则无法激活其他所有功能。我该怎么办?您需要确保在插入跨距后,单击功能被绑定。您可以尝试jquery的.live(),您需要确保在插入跨距后,click函数被绑定。您可以试试jquery的.live()
// .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'); 
});