- 内置的ID选择器
可以使用$('id'),只能简单代替document.getElementById('id'),木有jQuery的$那么全能,所以你在DiscuzX里面如果一定jQuery的话,记得加上jQuery.noConflict() / $.noConflict();,或者用个别名也可以,比如
var j = jQuery.noConflict();,
如果一定是喜欢使用jQuery的$,或者想以后代码可以被无痛拷贝到其他没有$冲突的环境,可以这样做
Reverts the $ alias and then creates and executes a function to provide the $ as a jQuery alias inside the functions scope. Inside the function the original $ object is not available. This works well for most plugins that don't rely on any other library.[javascript]jQuery.noConflict();
(function($) {
$(function() {
// more code using $ as alias to jQuery
});
})(jQuery);
// other code using $ as an alias to the other library[/javascript] - 内置的事件监听器的简单包装
我们知道由于addEventListener(firefox,顺序执行)和attachEvent(IE,逆序执行)的存在,discuz对这个东西做了一段简单的包装。统一使用_attachEvent来添加。当然也包装了对应的_detachEvent。
[javascript]function _attachEvent(obj, evt, func, eventobj) {
eventobj = !eventobj ? obj : eventobj;
if(obj.addEventListener) {
obj.addEventListener(evt, func, false);
} else if(eventobj.attachEvent) {
obj.attachEvent('on' + evt, func);
}
}function _detachEvent(obj, evt, func, eventobj) {
eventobj = !eventobj ? obj : eventobj;
if(obj.removeEventListener) {
obj.removeEventListener(evt, func, false);
} else if(eventobj.detachEvent) {
obj.detachEvent('on' + evt, func);
}
}
[/javascript]比如下面的天气预报延迟加载代码,页面onload完成后,再过3s,加载江阴的天气信息。这个一看就明白了,不多说
[html]<!--异步载入天气 Start by ihipop @ 2012/3/27 20:46-->
<span id="_w_loading" style="display: inline; float: right; margin-right: 5px; color: #c4312a;">天气信息载入中...:)</span>
<div style="display: inline; float: right; margin-top: 7px; background-color: transparent;"><iframe id="_w_content" style="display: none;" src="" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="160" height="20"></iframe></div><script type="text/javascript">// <![CDATA[
_attachEvent(window, 'load', function(){
setTimeout(function(){
var _w_src='http://m.weather.com.cn/m/pn4/weather.htm?id=101190202T';
$('_w_loading').style.display='none';
$('_w_content').style.display='inline';
$('_w_content').src=_w_src;
},3000);}, document);
// ]]></script>
<!--异步载入天气 Stop by ihipop @ 2012/3/27 20:46-->[/html] - 浏览器识别
开发者可以使用
if (BROWSER.firefox){
}
这样的逻辑来判断使用的什么浏览器及其版本。BROWSER.firefox返回的直接就是浏览器的版本号。如果在firefox里面alert(BROWSER.chrome),得到的是0,也就是不是firefox浏览器