当我在</body>
结束之前通过内联html放置它时,此函数有效。但是一旦我把它移到js / main.js它再也不起作用了。
内联:
<script>
var rowNum = 0;
function addRow(frm) {
rowNum ++;
var html = $('.addphone').html();
jQuery('.phone_adds').append(html);
}
function removeRow(rnum) {
jQuery('#rowNum'+rnum).remove();
}
</script>
与外部.js:
$(function() {
.....other functions...
var rowNum = 0;
function addRow(frm) {
rowNum ++;
var html = $('.addphone').html();
jQuery('.phone_adds').append(html);
}
function removeRow(rnum) {
jQuery('#rowNum'+rnum).remove();
}
});
错误讯息:Uncaught ReferenceError: addRow is not defined
帮助?这有什么不对?
答案 0 :(得分:2)
您将函数封装在包装器中:
$(function() {
var rowNum = 0;
function addRow(frm) {
rowNum ++;
var html = $('.addphone').html();
jQuery('.phone_adds').append(html);
}
function removeRow(rnum) {
jQuery('#rowNum'+rnum).remove();
}
});
当你这样做时,你定义的函数实际上是包装器的子函数(“$”函数),因此,当它从这个包装器调用外部时,该函数不存在。
“内联”有效,因为你的函数是全局的并且可以在任何地方看到(不在另一个函数中)。
我建议删除函数定义的包装器,然后将函数调用留在$()包装器中。