无法获得自定义jquery插件

时间:2012-03-22 10:26:54

标签: jquery

我想创建jquery插件&开始创建一个示例jquery插件......但是

$(this).css('color','blue');        
alert(this.id); 

不起作用......

jquery.myPlugin.js

jQuery.fn.changeTextColor = function() {
alert("xx");    //this works

return this.each(function() {
    $(this).css('color','blue');        
    alert(this.id);         //both the 2 statements don't work..
});
};

HTML

<script type = "text/javascript" src="jquery-1.7.1.js"></script>
<script type = "text/javascript" src="jquery.myPlugin.js"></script>

<script>
$('#mypara').changeTextColor();     
</script>

</head>
<body>
<p id="mypara">dsfdsfdsf</p>

</body>

2 个答案:

答案 0 :(得分:1)

她打击了她!

(function( $ ) {
    $.fn.changeTextColor = function() {
        alert("xx");    //this works

        return this.each(function() {
            $(this).css('color','blue');        
            alert(this.id);
        });
    }
}(jQuery));

然后致电:

$(document).ready(function() {
    $('#mypara').changeTextColor();
});

有一个小提琴;) http://jsfiddle.net/nmkeD/

答案 1 :(得分:1)

您的脚本在页面解析#mypara之前运行。因此,您的选择器无法找到它。尝试在文档就绪事件上执行此操作:

<script>
    $(function() {
        $('#mypara').changeTextColor();     
    });
</script>

其中$(function() { ... });是“当文档满载运行时”的简写