2015-09-14 61 views
1

我是新手,我第一次嘗試使用javascript。我有一個調用javascript的div。我有一個時區控制器,一個顯示時區的show.html。從div傳遞信息到javascript

<%= render @user.timezones.paginate(page: params[:page]) %> 

我每個timzone,_timezone.html部分文件,再培訓局:

<tr> 
<td><%= timezone.name %></td> 
<td><%= timezone.city %></td> 
<td><%= (timezone.positive ? '+ ' : '- ') + timezone.hours.to_s + ':' + timezone.minutes.to_s %></td> 
<td><div class="time-rect-container" data-positive="<%= timezone.positive %>" data-hours="<%= timezone.hours %>" data-minutes="<%= timezone.minutes%>"></div></td> 
<td><%= link_to "edit", edit_timezone_path(timezone) %> </td> 
<td><%= link_to "delete", timezone, method: :delete, 
            data: { confirm: "You sure?" } %> </td> 

這部分將被調用每一個時區,我有我的數據庫爲每個用戶。

而且我有作爲的JavaScript:

$(document).ready(function() { 
setInterval(function() { 
time_div = $('.time-rect-container'); 
var dt = new Date(); 

var x = time_div.data('hours'); 
var y = time_div.data('minutes'); 
z = time_div.data('positive') 
utchours = dt.getUTCHours(); 
utcminutes = dt.getUTCMinutes(); 
utcseconds = dt.getUTCSeconds(); 
if (z == true) 
    var time = parseInt(utchours + x + (utcminutes + y)/60) % 24 + ":" + (utcminutes + y) % 60 + ":" + dt.getUTCSeconds(); 
time_div.html(time) 
}, 1000); 
}); 

我想的JavaScript每次都返回不同的時間,根據不同的時間,時區的分鐘。然而,對於每個時區,我在javascript中獲得的數據都是相同的,即我檢索的數據的小時數和分鐘數對於每個時區都保持不變。 有人可以幫助解決這個問題嗎?

+1

告訴我們你想聰明的實現需要什麼。在你的問題中的描述是在這裏,我們可能不會建議你任何東西。問題的第一印象就是你想要達到的目標,而這種方式似乎不是正確的做法。 – Akki619

+0

我有一個不同時區的數據庫。我在時區上有一個渲染方法,就是我提到的_timezone.html.erb。對於每個時區,我想計算並顯示該時區中的當前時間。因此,對於每個時區,我需要從數據庫獲取數據並添加/減去時差並打印出來。有什麼辦法可以將時區差異或每個時區的ID發送給函數? –

回答

3

您可以使用Html Data Attributes發送信息到JavaScript。

您可以生成屬性爲data-url的div並將其傳遞給timezone-id url。你的div應該看起來像這樣。

<div class="time-rect-container" data-url="/timezones/<%= <timezone id> %>/give_time"></div> 

的Javascript:

$(document).ready(function() { 
    setInterval(function() { 
    time_div = $('.time-rect-container'); 
    time_div.load(time_div.data('url')); 
}, 1000); 
+0

完美,工作的魅力。非常感謝:) –

+0

我遇到了一個新的錯誤,請查看更新後的問題。 –

+0

更好地創造一個新的問題你混合好事讓我看看。它不是一個使用stackoverflow的好方法,你在這裏問了一個全新的問題,並刪除了前一個問題 –