【发布时间】:2019-01-10 07:53:45
【问题描述】:
我使用的是 jQuery 1.11.1 和 jQuery Mobile 1.4.5,一切正常。最近我已将 jQuery 升级到 3.3.1。我收到弹出问题。当我尝试通过调用 popupCaptureOptions() 函数在按钮 onlick 中打开弹出窗口时出现以下错误。
Uncaught TypeError: e.preventDefault is not a function
at w.Event.preventDefault (jquery-3.3.1.min.js:2)
at w.Event.preventDefault (jquery-3.3.1.min.js:2)
at jquery.mobile-1.4.5.min.js:7
at i (jquery-3.3.1.min.js:2)
at dispatch (jquery-3.3.1.min.js:2)
at y.handle (jquery-3.3.1.min.js:2)
at Object.trigger (jquery-3.3.1.min.js:2)
at jquery-3.3.1.min.js:2
at Function.each (jquery-3.3.1.min.js:2)
at jQuery.fn.init.each (jquery-3.3.1.min.js:2)
我的 html 页面如下所示。
<div data-role="page" id="previewscreen">
<main>
<div data-role="main" class="ui-content" style="margin:0; padding:0;">
<div id="ID_IMAGE_DIV" class="ID_IMAGE_DIV">
</div>
</div>
</main>
<div data-role="popup" data-history="false" data-overlay-theme="a" data-position-to="window" id="imagePopup">
<a class="popup_refrence" href="#" data-rel="back"></a>
<img id="popupImage" />
</div>
<div data-role="popup" data-dismissible="false" data-position-to="window" class="ui-content" id="ID_EXTRACTIONERRORPOPUP">
<a href="#" id="cancel" class="ui-btn ui-corner-all ui-shadow ui-btn ui-icon-delete ui-btn-icon-notext ui-btn-right">Close</a>
<p class='error'>Extraction Failed.</p>
<div id="ID_MORETEXT"></div>
<a id="ID_MORE" href="#">Read more</a>
<p id="extractionfailed"></p>
</div>
<div data-role="popup" id="capture_popupalert" data-dismissible="false" data-position-to="window" class="ui-content" data-overlay-theme="b">
<h4 style="text-align:center; margin-top:10px">Capture Options</h4>
<hr style=" margin-top: 0;" />
<div id="back_capture" style="margin-top:5%">
<div class="ui-grid-a">
<a style="background-color:#00b3b3;color:white;margin-left:30px;margin-right:30px;" id="back_capture_button" class="ui-btn ui-corner-all ui-shadow">Capture Back</a>
</div>
</div>
<div id="skip" style="margin-top:5%">
<div class="ui-grid-a">
<a style="background-color:#00b3b3;color:white;margin-left:30px;margin-right:30px;" id="skip_button" class="ui-btn ui-corner-all ui-shadow">Skip</a>
</div>
</div>
</div>
</div>
我的javascript代码是
var popupCaptureOptions = function() {
var imgFrontElement = document.getElementById("ID_IMAGE_DIV");
var content_width = $.mobile.activePage.find("div[data-role='content']:visible:visible").outerWidth();
$('#capture_popupalert').css({'width':content_width*0.8});
$("#capture_popupalert").popup("open");
$("#back_capture").click(function() {
capturedSide = CAPTURESIDE.CAPTURE_BACK;
doCapture();
});
$("#skip").click(function() {
$("#capture_popupalert").hide();
imgFrontElement.style.backgroundColor = "white";
Utils.showLoadingIndicator();
if (currentModule == Module.MOBILEID) {
MobileIDModule.extractData(frontCapturedImage, backCapturedImage, isOnBoardingFlow, region);
} else if (currentModule == Module.CHECK) {
CheckDepositModule.extractData(frontCapturedImage, backCapturedImage, isOnBoardingFlow, region);
}
frontCapturedImage = null;
});
};
请帮我解决这个问题。
【问题讨论】:
-
在问题中提供您的 javascript 代码
-
您在升级过程中遇到了 两个 重大问题。你的代码有变化吗? jQuery 确实从 1->2 引入了许多重大变化,我相信他们从 2->3 也做了同样的事情
标签: javascript jquery html jquery-mobile