本文将分享javascript–如何使用默认值true轻松地将变量设置为false?的详细内容,并且还将对js方法默认值进行详尽解释,此外,我们还将为大家带来关于java–如何使用setSelecti
本文将分享javascript – 如何使用默认值true轻松地将变量设置为false?的详细内容,并且还将对js方法默认值进行详尽解释,此外,我们还将为大家带来关于java – 如何使用setSelection在swt表上设置选择并将reveal设置为false?、JavaScript – bfcache / pageshow事件 – event.persisted总是设置为false?、javascript – D3.json将缓存设置为false、javascript – jQuery UI Slider – 在函数中使用默认值的相关知识,希望对你有所帮助。
本文目录一览:- javascript – 如何使用默认值true轻松地将变量设置为false?(js方法默认值)
- java – 如何使用setSelection在swt表上设置选择并将reveal设置为false?
- JavaScript – bfcache / pageshow事件 – event.persisted总是设置为false?
- javascript – D3.json将缓存设置为false
- javascript – jQuery UI Slider – 在函数中使用默认值
javascript – 如何使用默认值true轻松地将变量设置为false?(js方法默认值)
// Boolean this.listening = config.listening || true;
但是config.listening是true或false,在这种情况下this.listening将始终为true,因为如果config.listening为false,则它将等于true.
有没有更好的方法来设置这些布尔属性而不必执行if语句?
在javascript中是否存在if is@R_629_5301@来检查它是否存在而不是它等于什么?
解决方法
this.listening = config.listening === false ? false : true;
如果config.listening为false,则this.listening设置为false.如果它是任何其他值,则将其设置为true.
如果要检查是否已定义,可以使用:
this.listening = typeof config.listening !== "undefined"
参考文献:
> https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Conditional_Operator
java – 如何使用setSelection在swt表上设置选择并将reveal设置为false?
问题是调用方法(如下所示)会自动导致在Table.class中调用showSelected(),这不是我想要的.
tableViewer.getTable().setSelection(lastSelectedindices);
我已经尝试使用tableViewer设置选择,但由于某种原因它不起作用
例如:tableViewer.setSelection(new StructuredSelection(lastSelectedindices),false);
这行代码不会导致任何选择.
无论如何我可以选择表格行而不是让它们被揭示?
在我的系统中,每次网格刷新后我都需要调用setSelection,这样用户就不会丢失他选择的项目.当用户向下滚动网格时出现问题 – >如果在该点发生刷新,则网格会跳回到所选项目所在的位置.当用户向下滚动一个表并突然滚动条跳到顶部时,它看起来很奇怪.
任何帮助是极大的赞赏!
– 用于设置表格的代码 –
// add table viewer tableViewer = new TableViewer(this,SWT.MULTI | SWT.FULL_SELECTION | SWT.VIRTUAL); tableViewer.setUseHashlookup(true); tableViewer.addFilter(new GridPanelViewerFilter()); tableViewer.setComparator(new GridPanelViewerComparator()); tableViewer.setComparer(new GridPanelElementComparer()); table = tableViewer.getTable(); GridData tableGd = new GridData(SWT.FILL,SWT.FILL,true,true); table.setLayoutData(tableGd); table.setHeaderVisible(true); table.setLinesVisible(true); // set table font setTableFont(); // listen to paint events for anti aliasing table.addPaintListener( ...etcetc
—刷新表的代码 –
protected void refreshGrid() { if(!updateGrid) return; display.getDefault().asyncExec(new Runnable() { @Override public void run() { try { // check if disposed if (isdisposed()) { log.log(new Status(IStatus.ERROR,Activator.PLUGIN_ID,getClass().getName() + ": " + "Grid already disposed")); return; } // refresh table table.setRedraw(false); try { // get last selected indices from mouse down event tableViewer.refresh(true,false); if(lastSelectedindices != null){ tableViewer.getTable().deselectAll(); tableViewer.getTable().select(lastSelectedindices); } } catch (Exception e) { log.log(new Status(IStatus.ERROR,getClass().getName() + ": " + "Error at refresh table",e)); } table.setRedraw(true); // process post grid refresh postGridRefresh(); } catch (Exception e) { log.log(new Status(IStatus.ERROR,getClass().getName() + ": " + "Error during refresh grid",e)); } } }); }
解决方法
但是使用TableViewer.refresh()实际上应该保留选择.只是一个疯狂的猜测,但也许你在TableViewer上设置任何输入之前尝试TableViewer.setUseHashlookup(true).
你使用VIRTUAL表吗?如果是这样,请先尝试不使用VIRTUAL标志.
JavaScript – bfcache / pageshow事件 – event.persisted总是设置为false?
我在JavaScript中尝试了以下内容(关于StackExchange上的一些帖子,重新如何实现这一点):
<script type="text/javascript"> $(document).ready(function() { window.onpageshow = function(event) { console.log("Event:"); console.dir(event); if (event.persisted) { alert("non-jQuery - back to page - loaded from bfcache"); } else { alert("non-jQuery - loaded page from server"); } }; $(window).on("pageshow",function(event){ console.log("Event:"); console.dir(event); if (event.originalEvent.persisted) { alert("jquery - back to page - loaded from bfcache"); } else { alert("jquery - loaded page from server"); } }); }); </script>
我正在运行OpenSUSE Linux并尝试使用FireFox和Chrome(最新版本),但每次将事件的持久属性设置为false(我可以在JavaScript控制台中看到这一点,以及从上面的代码弹出的警报).每次,我的意思是,无论是从服务器加载还是通过后退按钮(或“后退”链接)再次显示.
我的目的是进行AJAX调用,如果页面通过Back按钮或history.go(-1)调用显示,则使用服务器的更新数据重新加载摘要组件/面板.
我还尝试设置一个卸载处理程序(什么都不做)以防止页面被放入bfcache但它似乎仍然显示一个bf-cached版本并且event.persisted(或event.originalEvent.persisted)设置为假.
这个属性在Linux上是否正确管理?我在代码中做了些什么蠢事吗?任何帮助或想法将不胜感激,谢谢!
解决方法
我找到了以下解决方法:
<input type="hidden" id="cacheTest"></input> <script> var input = document.querySelector('#cacheTest') if (input.value === "") { // the page has been loaded from the server,// equivalent of persisted == false } else { // the page has been loaded from the cache,// equivalent of persisted == true } // change the input value so that we can detect // if the page is reloaded from cache later input.value = "some value" </script>
这利用了这样的事实:在大多数浏览器中,当从缓存加载页面时,表单字段值也是守恒的.
javascript – D3.json将缓存设置为false
$.ajaxSetup({ cache: false });
但是如何将它添加到d3.json调用中,因为它使用自己的方法来调用ajax?我成功地在路径后面添加了当前时间戳:
var noCache = new Date().getTime(); d3.json(data + "?_=" + noCache)
但这样做有点蹩脚……任何建议我怎么能做到这一点?或者更好的是,如果IE正在运行,如何设置这个:)
解决方法
我通过将此代码添加到html文档的HEAD中来解决它.
<Meta http-equiv="cache-control" content="no-cache"> <Meta http-equiv="expires" content="0"> <Meta http-equiv="pragma" content="no-cache">
但是,这将阻止某个页面中每个对象的缓存,因此请小心使用图像,字体等.
javascript – jQuery UI Slider – 在函数中使用默认值
我需要一些关于jQuery UI滑块的帮助,我已经设置了初始值,但我似乎找不到在页面加载时显示它的方法.我还需要能够将两个滑块值调用到一个函数来进行计算,然后将其显示到屏幕上.
你可以在这里查看我的小提琴测试> http://jsfiddle.net/cC3Qh/
jQuery的
$(function() {
$( "#slider1").slider({
max: 2500,
value: 1000,
slide: function( event, ui ) { $( "#slider-result1" ).html( ui.value ); },
change: function(event, ui) { calPrice(ui.value); }
});
$( "#slider2").slider({
max: 30,
value: 12,
slide: function( event, ui ) { $( "#slider-result2" ).html( ui.value ); },
change: function(event, ui) { calDays(ui.value); }
});
});
function calDays(sliderval){
var day = sliderval;
day = day * 100;
document.getElementById('price2').innerHTML = day;
var price = document.getElementById('price1').innerHTML;
price = price * day;
document.getElementById('price3').innerHTML = price;
}
function calPrice(sliderval){
var price = sliderval;
price = price * 100;
document.getElementById('price1').innerHTML = price;
}
谢谢.
解决方法:
向滑块添加create事件处理程序:
$("#slider1").slider({
max: 2500,
value: 1000,
slide: function (event, ui) {
$("#slider-result1").html(ui.value);
},
change: function (event, ui) {
calPrice(ui.value);
},
create: function (event, ui) {
$("#slider-result1").html($(this).slider("value"));
}
});
今天的关于javascript – 如何使用默认值true轻松地将变量设置为false?和js方法默认值的分享已经结束,谢谢您的关注,如果想了解更多关于java – 如何使用setSelection在swt表上设置选择并将reveal设置为false?、JavaScript – bfcache / pageshow事件 – event.persisted总是设置为false?、javascript – D3.json将缓存设置为false、javascript – jQuery UI Slider – 在函数中使用默认值的相关知识,请在本站进行查询。
本文标签: