選項1
想打開上點擊新標籤頁中的鏈接時,下面的工作,只希望它在儀表板的某些瓷磚:
onClick="javascript: window.open('http://url', '_blank');"
因此,例如在dashboard.erb
文件中,可以有以下幾種:
注意:在這個例子中我有Switcher設置(需要安裝dashing-contrib),並用於在使用不同小部件(Hotness和默認列表)的2個貼圖之間切換。這將適用於任何已創建的圖塊。這正是我碰巧使用它的地方。
<% content_for :title do %>Dashboard Name<% end %>
<div class="gridster">
<ul>
<li data-switcher-interval="5000" data-row="1" data-col="1" data-sizex="1" data-sizey="1" onClick="javascript: window.open('http://www.stackoverflow.com', '_blank');">
<div data-id="data-id-name from .rb job" data-view="Hotness" data-title="Title of Widget" data-moreinfo="more information text" data-cool="1" data-warm="30"></div>
<div data-id="data-id-name from .rb job" data-view="List" data-unordered="true" data-title="Title of Widget" data-moreinfo="more information text"></div>
<i class="fa fa-warning icon-background-small"></i>
</li>
</ul>
</div>
選項2
另一種方式做,這是你的dashboard.erb
的頂部增加一個功能。
注:這個例子會讓所有的瓷磚可以點擊的,如果沒有提供網址鏈接,瓷磚所以它不是一個理想的解決方案,但沒有工作*
$(function bringToTop() {
$('li').live('click', function(e){
var widget = $(this).find('.widget');
if(widget.data('url')){
var url = widget.data('link');
var win = window.open(url, '_blank');
win.focus();
}
});
});
所以整個dashboard.erb
打開一個空白標籤文件應該是這個樣子:
<script type='text/javascript'>
$(function bringToTop() {
$('li').live('click', function(e){
var widget = $(this).find('.widget');
if(widget.data('url')){
var url = widget.data('link');
var win = window.open(url, '_blank');
win.focus();
}
});
});
</script>
<% content_for :title do %>Dashboard Name<% end %>
<div class="gridster">
<ul>
<li data-row="1" data-col="1" data-sizex="1" data-sizey="1">
<div data-id="mydata" data-view="Hotness" data-title="Data Title" data-cool="20" data-warm="1000" data-link='http:\\www.stackoverflow.com'></div>
</li>
</ul>
注意:
東西我還沒有測試,但我在網上搜索時發現,使用上述任何一個選項我提供的可能無法在iOS設備上工作。這個問題可能已經得到修復,而且我也不是以任何方式敲開Gridster,而是使用Gridster。在Gridster有一個Open issue for click events on iOS devices。
感謝Phylor在GitHub提供臨時修復/解決方案,該修復/解決方案已於2016年2月21日(不是我)確認。
就以下內容添加到您的dashboard.erb
文件的頂部:
<script type='text/javascript'>
function openUrl(obj) {
var widget = $(obj).find('.widget');
var url = widget.data('url');
window.open(url, '_blank');
}
$(function() {
$('li').live('click', function(e){
openUrl(this);
});
$('li').live('touchend', function(e){
openUrl(this);
});
});
</script>
這是我的第一篇文章,所以我對任何格式錯誤道歉,但想通這是時候開始回饋具有社區非常幫助我。希望這可以幫助!
點擊觸發的上下文是什麼。嘗試在末尾添加'return false'。我猜,如果有需要的話,「預防」應該也是最後一個。 – zishe
我有我的米小部件中的點擊事件塊像這樣,但是,添加返回false不幫助。 類Dashing.Meter延伸Dashing.Widget @accessor '值',Dashing.AnimatedValue 點擊:(事件) - > location.href = 「http://www.stackoverflow.com」 返回false – sam