JQuery单击事件的搜索结果


Search Result with JQuery Click Event

我正在尝试创建一个带有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>
        ";
    }

动态html元素的正确方法实际上是

$(selector).on('click', function() { 
//your code here
});

然而,在仔细研究了您的代码之后,我认为您应该在div中添加一个类,并将css外部化。

假设您将.searchResult类添加到div中(假设它们有自己的id),如果您在点击事件中需要它们的id,只需通过点击函数中的以下代码访问它:

$(this).attr('id')

您需要使用on,因为您在将click事件附加到div后创建了div,也只需使用$(this)来隐藏您正在单击的元素(只需确保正确转义引号,因为我不是php人员,所以我使用'来转义,不确定它在php中是如何转义的)

$('body').on("click", '"#{$result['id']}'", function(){ $(this).hide(); });

或者相互切换线路,即按照@Barmar建议的将script放在div之后

这是正在工作的FIDDLE