论坛首页 Web前端技术论坛

不理解这短代码的含义

浏览 3974 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-06-21  
Element.addMethods({
	makeUnselectable: function(element,cursor){
		cursor = cursor || 'default';
		element.onselectstart = function() {
	        return false;
	    };
	    element.unselectable = "on";
	    element.style.MozUserSelect = "none";
	    element.style.cursor = cursor;
		return element;
	},
	makeSelectable: function(element){
		element.onselectstart = function() {
	        return true;
	    };
	    element.unselectable = "off";
	    element.style.MozUserSelect = "";
	    element.style.cursor = "inherit";
		return element;
	}
});


我试过了,使用makeunselectable就是不能选,也不能点,但直接使用  disabled不就ok了吗,何必这么麻烦呢,还有就是onselectstart对象将要被选中时触发,则么才触发呢,不理解
引用

Ever have a draggable, droppable, or otherwise interactive element on your page that gets selected as part of a text selection? The following code block has been made unselectable. Note that you can still select text in the parent element, and hence, the entire element below, but you can't click inside of it to select text directly. Note that Element.makeSelectable() only becomes useful once you have made something unselectable. Every element is selectable by default.

这是对他的解释,没看明白,
我所理解的就是如果用disabled的属性时,这个元素的值不会被传到后台,但用这个方法也实现了disabled 的效果但能把值传到后台
不知是不是这么理解,希望一下
   发表时间:2007-06-21  
这段代码如果是和prototype.js一起使用就没有错了,里面两个函数与你解释的基本是一致的,只是这么做是一个通用的做法,Element.addMethods方法可以给Element对象以及$()返回的对象增加一些新的方法.如你上所写的代码,则Element.makeSelectable("nodeid")和$("nodeid").makeSelectable()都是可以用的.你可以参考prototype.js中Element相关的一些代码.
0 请登录后投票
   发表时间:2007-06-21  
可我还是不理解onselectstart到底在什么时候触发,能不能写个简单的例子,谢谢
还有在这两个方法中的
element.unselectable = "on";
element.style.MozUserSelect = "none";

unselectable应该是自定义的属性,MozUserSelect我也没查到有这个样式,我不理解的是写这些有什么用,起什么作用呢
0 请登录后投票
   发表时间:2007-06-21  
onselectstart在element被选中时触发,那段英文解释的比较清楚,他讲的意思就是你使用了以上的代码,那么在一段被选中的文字中(包涵这个组件的一段文字)这个组件将避免被选中。

uselectable不是自定义的属性而是ie中结点的属性,而MozUserSelect我想应该是Firefox中对应的属性值。就是表明一个节点能否被选中。
0 请登录后投票
   发表时间:2007-06-22  
十分感谢楼上,我有查了查msdn找到了UNSELECTABLE属性,但我对他的这断
element.onselectstart = function() {
	        return false;
	    };

还是不太理解,onselectstart是对象将要被选中是触发,return false;是表示永远不会被选中?
还是不太理解,能给写个小例子吗帮助理解一下这个方法,实在是没用过,楼上谢谢了,十分感谢
0 请登录后投票
   发表时间:2007-06-22  
IE中的DOM事件对象,当事件响应函数返回false时,事件将被取消,即不能被选中。比如,有些网站禁止复制,所以可以这样操作

$(document.body).makeUnselectable();
0 请登录后投票
   发表时间:2007-06-22  
campaign 写道
十分感谢楼上,我有查了查msdn找到了UNSELECTABLE属性,但我对他的这断
element.onselectstart = function() {
	        return false;
	    };

还是不太理解,onselectstart是对象将要被选中是触发,return false;是表示永远不会被选中?
还是不太理解,能给写个小例子吗帮助理解一下这个方法,实在是没用过,楼上谢谢了,十分感谢


事件触发了但是不起效果
0 请登录后投票
   发表时间:2007-06-22  
十分感谢,楼上两位,现在有感觉了,谢谢
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics