如何让jQuery插件中的事件处理函数只在插件内部生效
比如我有个目录树插件,树节点的class="node",有一个事件click处理函数
(function($) {
$.fn.jTree = function(options) {
$(".node_name").click(function(event) {
});
};
})(jQuery);
如果在html页面的其他地方还有class="node"的元素,当我点击的时候,同样会触发这个click事件。
怎样限制能触发这个click事件的元素?只有在我的插件内部的元素click的时候触发,插件外部的元素click的时候不触发这个函数?
------解决方案--------------------命名的时候加jTree等不常用的前缀呗 这种前缀不可能再用重复的了
------解决方案--------------------(function($) {
$.fn.jTree = function(options) {
$(".node_name"
,$(".node")).click(function(event) {//第二个参数是指定范围。
});
};
})(jQuery);
示例:
<div id="div"><span class="a">点这里有反映</span></div>
<span class="a">点这里没反映哦</span>
<script type="text/javascript">
$(function(){
$(".a",$("#div")).click(function(){
alert("ok");
})
})
</script>
------解决方案--------------------把代码的质量提高。
要么加个父id, 要么自己加个id。