此代码给出了一个错误:
var openPrayer = function(e) {
e.preventDefault();
var id = $(e.currentTarget).data('id');
var json = $.getJSON('/user/prayers/' + id);
var temp = new t($('#prayerTemp').html());
json.then(function(resp){
var modal = temp.render(resp[0]);
$('body').append(modal);
});
}
$('.open-prayer').on('click', openPrayer);
这是错误:
TypeError: e is undefined
我不知道自己哪里出错了,上面的代码会将JSON
响应加载到我在下面设置的模板中:
<script type="t/template" id="prayerTemp">
<div class="prayer-modal">
<img src="/img/icons/heart_infographic_prayer.jpg" class="hearts"/>
<div class="prayer">
<h1>@{{=name}}</h1>
<p>@{{=body}}</p>
</div>
<span class="close-prayer">×</span>
</div>
</script>
非常感谢任何帮助。
答案 0 :(得分:0)
而不是
var id = $(e.currentTarget).data('id');
使用
var id = $(e.target).data('id');
工作正常。
如果想要了解e.currentTarget
和e.target
之间的更多区别,请参阅此处: -
答案 1 :(得分:0)
var id = e.currentTarget.id;
工作正常。但如果你需要IE&lt; 8兼容性使用在MDN
解释的jQuery解决方案或解决方案