我必须为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()正常工作但插件没有任何效果。 怎么了?
感谢。
答案 0 :(得分:1)
似乎您希望this
同时引用div
和a
。
如果我理解您的代码,则在单击<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();
});