我使用Ruby on Rails,jQuery v1.8.3和jQuery UI v1.9.2。在一個視圖文件,我渲染局部模板是這樣的:如何處理DOM改變覆蓋一些變量的情況?
<%= render :partial => 'template_name', :locals => { :div_id => 'div_id1' } %>
相關template_name
文件包含以下內容:
<script type="text/javascript">
var item = $('#<%= div_id %>')
alert(item.selector) // Display #div_id1
</script>
在同一頁上,通過一個AJAX請求,我檢索和增加DOM中的相同部分模板但:locals => { :div_id => 'div_id2' }
:
<script type="text/javascript">
var item = $('#<%= div_id %>')
alert(item.selector) // Display #div_id2
</script>
製作上述,後第e AJAX請求,由於item
與#div_id2
有關,所以我「丟失」對#div_id1
的引用。
我應該如何處理這種情況,以避免「覆蓋」變量?如何「隔離」(也許,命名空間或使用一些jQuery功能)這些變量?
真正的問題是:您正在使用全局變量 – apneadiving
我會避免嘗試將客戶端JavaScript與服務器端輸出混合使用。 –
@apneadiving - 我應該如何讓這些變量爲本地? – user12882