Asp.net mvc ReferenceError:“引用错误”;productfancybox未定义“;一次点击事件
我正在尝试在href linkAsp.net mvc ReferenceError:“引用错误”;productfancybox未定义“;一次点击事件,asp.net-mvc,razor,nopcommerce,Asp.net Mvc,Razor,Nopcommerce,我正在尝试在href linkonClickevent上的fancybox中显示产品。 但是,当单击事件发生时,它会给出如下错误 ReferenceError:未定义productfancybox 我尝试过以下代码: HomePageProducts.cshtml: <div class="herry-pic-cols brdr"> <ul id="homePageFeaturedProductInit"> @for
onClick
event上的fancybox中显示产品。
但是,当单击事件发生时,它会给出如下错误
ReferenceError:未定义productfancybox
我尝试过以下代码:
HomePageProducts.cshtml:
<div class="herry-pic-cols brdr">
<ul id="homePageFeaturedProductInit">
@foreach (var item in Model)
{
<li>
<span id="@item.Id">
@Html.Partial("_CategoryBox", item)
<a id="Link" href="#" onClick ="productfancybox(@item.Id);">Link</a>
</span>
</li>
}
</ul>
<div class="clear"></div>
<a class="prev-btn2" href="#"></a>
<a class="next-btn2" href="#"></a>
</div>
<script type="text/javascript">
$(window).load(function () {
function productfancybox(id) {
$.fancybox({
'width': '80%',
'height': '100%',
'autoScale': true,
'transitionIn': 'fade',
'transitionOut': 'fade',
'href': '/Category/CategoryProductsFancyBox?Id='+id,
'type': 'iframe',
'onClosed': function () {
window.location.href = "f?p=&APP_ID.:211:&SESSION.::&DEBUG.::";
}
});
}
});
</script>
@foreach(模型中的var项目)
{
-
@Html.Partial(“_CategoryBox”,item)
}
$(窗口)。加载(函数(){
函数productfancybox(id){
$.fancybox({
“宽度”:“80%”,
“高度”:“100%”,
“自动缩放”:正确,
“transitionIn”:“fade”,
“transitionOut”:“fade”,
'href':'/Category/CategoryProductsFancyBox?Id='+Id,
'type':'iframe',
“onClosed”:函数(){
window.location.href=“f?p=&APP_ID.:211:&SESSION:&DEBUG:”;
}
});
}
});
为什么onClick
事件不起作用?我遗漏了什么吗?您的函数,
productfancybox
的作用域是在窗口加载时调用的匿名函数。一旦发生,它就会消失,不再存在
相反,您需要在全局名称空间中定义函数(即不在这样的调用中),或者最好创建一个名称空间并在其中定义函数:
var MyAwesomeNamespace = MyAwesomeNamespace || {};
MyAwesomeNamespace.productfancybox = function (id) {
...
}
然后,您可以稍后拨打:
MyAwesomeNamespace.productfancybox(1);
在脚本运行之后,在代码中的任何位置。这只是一个简单的例子。有更好的方法为应用程序设置库。这里有一个基本的入门课程,你可以从中学习: