jquery - 单击 ColdFusion 文件中创建的 li

标签 jquery html listview coldfusion

我有一个来自学校数据库的车牌号列表,我已将其放入 Coldfusion 列表中并以 html 形式显示。看起来像这样... pretty, no?

在通过 Coldfusion 将数据导入列表之前,我对数据库中的数据进行硬编码并获取结果。但是,这是一个相当长的列表,因此对其中的所有值进行硬编码并不是一个好的选择,特别是如果将来要扩展该列表的话。所以,我只是制作了另一个 CF 文件来处理将它们全部放入列表中。该文件如下所示:

setPlates.cfm

<cfquery name="q_sample" datasource="cars_live">
  SELECT LICENSE FROM veh_rec 
</cfquery>

<cfloop query="q_sample" >
        <li><a href='#Student'><cfoutput>#q_sample.license#</cfoutput></a></li>
</cfloop>

这是我将它们放入列表的方式:

<div class="ui-grid-solo">
            <div class="ui-block-a"><br></div>
            <div class="ui-block-a"><ul id="plates" data-role="listview" data-inset="true" data-filter="true" data-filter-reveal="true" data-filter-placeholder="Filter Students">
    <script type="text/javascript">
    $.get("setPlates.cfm")
        .done(function(data) {
          $("#plates").html(data);
        });
        </script>
        <div id="plates"></div>
    </ul></div>
</div><!-- /grid solo -->

但是,现在我用于输出所有学生数据的算法不再起作用。我唯一的猜测是,在另一个文件中创建 li 元素的列出方式与在同一文件中创建它们时的方式不同。有没有办法让 li 的文本被点击,即使它们不是在同一个文件中创建的?下面是我使用硬编码值的点击算法和 CF 文件。

<script type="text/javascript">
    $("#plates li").click(function() {
        alert("hi");
        var strLicense=$(this).text();
        strLicense=$.trim(strLicense);

        $.get("joey.cfm", { license: strLicense})
        .done(function(data) {
          $("#myResults").html(data);
        });
    });    

和 joey.cfm:

<cfparam name="License" default="">

<cfquery name="q_sample" datasource="cars_live">
  SELECT * FROM veh_rec WHERE LICENSE=<cfqueryparam cfsqltype="cf_sql_varchar" value="#trim(urldecode(License))#">
</cfquery>

<cfif q_sample.recordcount eq 0> 
No Results found for <cfoutput>"#License#"</cfoutput> 
</cfif>

<cfoutput query="q_sample" >
  <p>License Plate Number: #license# <br><br> Permit ID Number: #decal#<br><br> Student ID Number: #ID#</p>
</cfoutput>

提前谢谢您!

最佳答案

不久前我也曾问过类似的问题。您面临的问题是,您在创建函数时尝试与 DOM 中不存在的对象进行交互。您想使用 jQuery 的 .on()将事件附加到新创建的对象。 额外提示,.on() 替换 .live()在 jQuery 1.7 中。因此,如果您使用 live() 获取了任何免费代码,或者有人告诉您使用 live(),请改用 on()

<script type="text/javascript">
    $("#plates").on("click","li",function() {
        var strLicense=$(this).text();
        strLicense=$.trim(strLicense);
     });
</script>   

关于jquery - 单击 ColdFusion 文件中创建的 li,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16900559/

相关文章:

android:在 ListView 行内单击按钮播放音频

javascript - 在动态创建的 iframe 中触发 Javascript

jquery - 为 jQuery map 突出显示启用单击突出显示

jquery - 使用 slider 打开图像

javascript - 在新布局/css 中集成 Mapbox 时出现的问题

Django ListView如何获得digg风格的分页

javascript - "Magnific Popup"悬停打开弹出窗口的 div 时离开

Twitter Bootstrap 弹出框内的 HTML

javascript - MarkerClusterer 脚本 : Unexpected Token

c# - 我如何按字母顺序对我的 ListView 进行排序?