jxp 发布于 12月29, 2011

document.body.appendChild在IE6下会有问题

跟到最后,发现是appendChild的问题,做个标记吧,以后都用document.body.insertBefore,比如创建一个a标签在body之后

var t_a = document.createElement_x("a");
t_a.href="#";
document.body.insertBefore(t_a, document.body.childNodes[0]);

阅读全文 »

jxp 发布于 12月29, 2011

js中的preventDefault

preventDefault方法就是可以阻止它的默认行为的发生而发生其他的事情。

JS阻止链接跳转

<script type="text/javascript">
function stopDefault(e) { 
     if (e  e.preventDefault) {//如果是FF下执行这个
        e.preventDefault();
    }else{ 
        window.event.returnValue = false;//如果是IE下执行这个
    }
    return false;
}
</script> 
<a href="http://www.test.com" id="test"测试>test</a> 
<script type="text/javascript">
var test = document.getElementByIdx_x('test'); 
test.onclick = function(e) { 
   alert('URL:' + this.href + ', 不会跳转'); 
   stopDefault(e); 
} 
</script>

此时点击链接,不会打开url,只弹出一个对话框。

阅读全文 »

jxp 发布于 12月29, 2011

用JS写了一个随机取不同的数据的例子

之前有项目要用类似的功能,想随机从一些数据里抽取一些完全不相同的数据,想了一个这个逻辑,于是就写了个例子,如下:

var sa = [];

var len = 15;

for(var i=0;ilen;i++){

sa.push(i);

}

for(var i=0;i10;i++){

//alert('剩下的长度:----'+sa.length);

var rate = parseInt(Math.random()*sa.length);

//alert('命中的key----'+rate);

var subs = sa.splice(rate,1);

//alert('命中的value---'+subs+'---typeof:'+typeof(subs));

}

alert('最后剩余:---'+sa.join(','));

可以看出,最核心的地方就是splice函数

以下是jk推荐的算法:

这是一个典型的抽牌算法。
抽牌算法与洗牌算法推荐如下:

阅读全文 »