<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('.excerpt_read-more').click(function(e) {
e.preventDefault();
var url = jQuery(this).attr('href');
jQuery.get(url, function(data) {
var content = jQuery(data).find('#the_content').text();
jQuery(this).parent().fancybox({
'content' : content
});
});
});
});
</script>
这是我的代码,一切都可以正常工作到fancybox应该触发的部分。我把父方法放在一起,因为它通常会在.excerpt_read-more上触发一次,但是在任何情况下它都没有它。
有什么建议吗?
答案 0 :(得分:2)
您有一个范围/上下文问题。你不能在回调函数中重用this
,因为那是一个全新的上下文。尝试将对元素的引用存储在单独的变量中,然后使用该变量。 E.g。
jQuery(document).ready(function() {
jQuery('.excerpt_read-more').click(function(e) {
e.preventDefault();
var url = jQuery(this).attr('href');
var $link = jQuery(this); // <-- see this
jQuery.get(url, function(data) {
var content = jQuery(data).find('#the_content').text();
$link.parent().fancybox({ // <-- and use it here
'content' : content
});
});
});
});