在我的parial视图中执行动态加载的jquery时遇到了问题。
Parial视图
<input type="text" id="producerSearch" select-box-search-performer="true" select-box-search-url="TestUrl" select-box-search-performertype="Producer" select-box-search-destination="#Destination")" />
Jquery
<script>
$(document).ajaxSuccess(function() {
$(":input[select-box-search-performer]").each(function () {
var $element = $(this);
$(this).autocomplete({
source: function (request) {
var url = $element.attr("select-box-search-url");
var destSelect = $element.attr("select-box-search-destination");
var performertype = $element.attr("select-box-search-performertype");
$.ajax({
async: false,
cache: false,
type: "POST",
url: url,
data: { "term": request.term, "productId": @Model.ProductModel.ProductId, "performerType": performertype},
success: function (data) {
$(destSelect).empty();
for (var i = 0; i < data.length ; i++) {
$(destSelect).
append($("<option></option>").attr("value", data[i].ID).text(data[i].Name));
}
}
});
}
});
});
});
</script>
有些讨论说“需要包含ajaxSuccess(如上面的代码),但是这不会在动态加载的部分视图上触发jquery。
-艾伦-
发布于 2016-03-04 13:54:47
我想既然你有一个动态加载的局部视图。由于动态内容加载是一项ajax业务,因此每当您加载动态视图时,首先加载内容,然后触发ajaxsuccess,所以$(":input[select-box-search-performer]").each(function)
在那个时间工作,而不是在此之前。
您需要做的是检查呈现动态视图的逻辑,并在局部视图呈现后从那里触发回调,然后执行此代码。
https://stackoverflow.com/questions/35787831
复制相似问题