我正在尝试使用jquery点击事件创建搜索结果模板...
if ( $result['template'] == "i1basic" )
{
echo "
<script>$('#{$result['id']}').click(function(){ $('#{$result['id']}').hide(); });</script>
<div id=\"{$result['id']}\" style=\"width:244px; height:244px; float:left; margin:2px; background-color:#{$result['color']}; background-image:url('system/content/images/{$result['image']}'); background-size:cover;\"></div>
";
}
答案 0 :(得分:0)
您需要使用on
,因为您在向其附加click
事件后创建了div,也只需使用$(this)
隐藏您点击的元素(只需制作确定你正确地逃避了引号,因为我不是一个php人,所以我使用\
来逃避,不知道它是如何在php中)
$('body').on("click", \"#{$result['id']}\", function(){ $(this).hide(); });
或相互切换线条,即将script
放在div
之后作为@Barmar建议
这是工作FIDDLE
答案 1 :(得分:0)
动态html元素的正确方法实际上是
$(selector).on('click', function() {
//your code here
});
然而,仔细看看你的代码后,我相信你应该只为div添加一个类,并将css外化。
假设你将.searchResult类添加到div(授予他们的ID),如果你需要他们在click事件上的id,只需通过click函数中的以下代码访问它:
$(this).attr('id')