选项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