2013-06-03 2 views
2

У меня есть список номеров номерных знаков из базы данных моей школы, которые я ввел в список с coldfusion и отображен в html. Похоже на то, что ... pretty, no?Получение щелчка li, созданного в файле ColdFusion

Прежде чем я импортировал данные в список через 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 в другом файле не отображает их так же, как и при создании их в одном файле. Есть ли способ получить текст щелчка, даже если он не создан в том же файле? Ниже мой алгоритм кликов и 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> 

Спасибо заранее!

+0

* «алгоритм я имел для вывода всех данных студента больше не работает» * - в том, что путь? Я предполагаю, что это потому, что элементы списка не являются первоначально частью dom, и вы не учитываете это. Вероятно, нужно что-то большее, как '$ (« # plate »). On (« click »,« li », function() {});' вместо '$ (# plate li).) Click()' – Travis

+0

Вы также имеют элементы с идентификатором «тарелок», который не помогает вам никого. – Travis

+0

не работает, поскольку ничего не распечатывает. Нет ошибок, нет ничего. Он просто не читает клик, следовательно, появляется предупреждение. фрагмент кода может помочь как для двух переменных с «пластинами», я понял, что вскоре после публикации, спасибо за головы, хотя. Это предложение кода сработало, если вы положите его в ответ, я приму это :) –

ответ

2

Я должен был задать аналогичный вопрос некоторое время назад. Проблема, с которой вы сталкиваетесь, заключается в том, что вы пытаетесь взаимодействовать с объектами, которые не существуют в DOM при создании функции. Вы хотите использовать jQuery's .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> 
+0

Отличный ответ! Получил мне то, что мне нужно, спасибо :) Специально для чаевых о живых! –

Смежные вопросы