比较JQuery函数中的负数
Comparing negative numbers in JQuery function
我试图比较两个负数,但比较失败。在这种特定情况下,getLeftPercent()
是负数(-14),但当进行比较时,执行动作B。从逻辑上讲,(-14)小于(-10),因此应执行动作A。
如果我将右侧比较操作数(-10)更改为正数(例如1),则执行操作a。我是否忽略了JavaScript的一些怪癖(它正盯着我的脸)?我可以发布完整的代码,但实际上没有更多。
$(function() {
// the statement in question
if (parseInt(getLeftPercent(), 10) < -10) {
// do action A
// this is just a debug statement
$('#posbanner').html('element position is less than negative 10');
} else {
// do action B
// this is just a debug statement
$('#posbanner').html('element position is greater than or equal to negative 10');
}
});
// element left position on page
function getLeftPercent() {
var leftStr = $('#sidebar').css('left'),
pxPos = leftStr.indexOf('px'),
leftVal = leftStr.substr(0, pxPos),
leftPercent = (leftVal / $(window).width() * 100).toString(),
dotPos = leftPercent.indexOf('.'),
leftPercentStr = dotPos == -1 ? leftPercent : leftPercent.substr(0, dotPos);
return leftPercentStr;
};
我尝试在jsfiddle 上运行以下代码
if (parseInt( -14, 10) < -10)
{
alert("I am in A");
}
else
{
alert("I am in B");
}
我得到我在A不确定getLeftPercent()
是否返回您期望的值。
您的getLeftPercent()
函数似乎过于复杂。我不确定您的"left"是相对于文档还是父元素,我假设这里是文档。
function getLeftPercent() {
'use strict';
return ( ($('#sidebar').offset()).left * 100 / $(window).width() );
}
很可能您的子字符串在数字之前返回一些字符。
alert(parseInt('-14abc', 10)); // -14
alert(parseInt('abc-14', 10)); // NaN
相关文章:
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 如何从jquery函数返回变量
- 如何将具有文本类型值的var放入jQuery函数中
- Jquery函数在错误的时间提交
- 锚链接无法使用.slideUp jquery函数
- 重新分解jQuery函数
- 如何在视图模型contet更新更新上调用Jquery函数
- 如何向这个javascript/jquery函数添加参数
- 添加类来触发jquery函数
- 更改智能表中的页面将停止JQuery函数的工作
- 使用每500ms运行一次的jquery函数是个好主意吗
- jQuery函数不能只在一个页面上工作
- 如何将jquery函数链接到vanilla选择器
- 仅在小型设备上调用jQuery函数
- 如何将jquery函数仅应用于大屏幕
- 奇怪的jquery函数行为
- Backbone listenTo不将jquery函数作为处理程序进行激发
- 在jquery函数内部设置来自jquery函数的var;t运行
- 从Jquery函数中获取一个变量