jquery .empty()问题:在插件中不起作用

时间:2011-07-03 19:46:53

标签: jquery-plugins jquery

我必须为ajax加载编写一个简单的插件。 页面代码。 (razor的结果)

<a ajaxLoad="page" href="/Brand">Brand List</a>

<div id="plc1">
  some content
</div>

<script type="text/javascript">
        $(function () {
            $("#plc1").ajaxPageLoad();
        });
</script>

在js代码中。

jQuery.fn.ajaxPageLoad =
function () {
    $('a[ajaxLoad*="page"]').click(function () {
        $(this).empty();
        $(this).load(this.href);
        return false;
    });
}

在没有此实现的页面中,empty()正常工作但插件没有任何效果。 怎么了?

感谢。

1 个答案:

答案 0 :(得分:1)

似乎您希望this同时引用diva

如果我理解您的代码,则在单击<a>元素时,您想要清空调用插件的元素。

目前,在click()处理程序中,this<a>元素。您需要保留对您的插件所在的<div>的引用 处理程序。

jQuery.fn.ajaxPageLoad = function() {
      // reference the <div> container (or whatever it ends up being)
    var container = this;

    $('a[ajaxLoad*="page"]').click(function() {
        container.empty();           // empty the container
        container.load( this.href ); // load into the container from the href
        return false;                //    of the <a> that was clicked
    });
};

$(function() {
    $("#plc1").ajaxPageLoad();
});