我有一個jsp鏈接到標記中的jquery腳本文件。在這個頁面中,我有一個標籤,當鏈接被點擊時,它必須從另一個jsp文件中加載。新頁面也有一定的jquery操作。但是當我加載頁面的jQuery操作不執行,因此我也加載jsp文件在新的jsp文件中。然後再次出現問題,即操作不止一次。請給出您寶貴的答覆,建議和解決方案的問題...如何防止多次加載jquery文件?
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Flyers</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="js/lib.js"></script>
<script type="text/javascript" src="js/scripts.js"></script>
<script type="text/javascript" src="js/jquery.json-2.3.min.js"></script>
</head>
<div class="page_steps">
<s:form method="post" action="flyers" name='ldm_form' id='ldm_form_flyers'>
<!-- Question 1 -->
<div class="questionstep">
<div class="stepno">STEP 1</div>
<h2>Enter the correct DEC:</h2>
<input type="text" id="dec" name="oci.dec" value="" class="inputbx numericonly" maxlength="16" />
<div class="errbox">Please enter valid DEC</div>
<input type="button" value="" class="btn_continue" />
</div>
<!-- Question 2-->
<div class="questionstep">
<div class="stepno">STEP 2</div>
<h2>Select Your target program</h2>
<div class="errbox">Please select at lease one</div>
<s:iterator value="targetPrograms">
<input type="radio" name="tpId" value="<s:property value="tpId"/>"/><label id="<s:property value="tpId"/>"><s:property value="tpName"/></label><br/>
</s:iterator>
<input type="button" value="" class="btn_continue" />
</div>
<!-- Question 3 -->
<div class="questionstep">
<div class="stepno">STEP 3</div>
<h2>Select Your Mailing Materials</h2>
<div class="errbox">Please select at lease one</div>
<strong>Self Mailer</strong><br />
<div class="mailmaterials">
<ul class="questslider">
<s:iterator value="mailingmaterials" id="mailMat" begin="0" end="1">
<li>
<div class="quickpreview"><p>QUICK PREVIEW</p><div class="noshow">
<s:iterator value="#mailMat.templatePath" id="tempPath" begin="0" end="1">
<s:property value="#tempPath.ldmImgPath"/><s:property value="#tempPath.ldmImgName"/>,
</s:iterator>
</div></div>
<s:iterator value="#mailMat.templatePath" id="tempPath" begin="2">
<img src="<s:property value="#tempPath.ldmImgPath"/><s:property value="#tempPath.ldmImgName"/>" width="90" height="149" alt="" />
</s:iterator>
<br />
<label>
<input type="radio" name="mailMatId" value="<s:property value="#mailMat.mailMatId"/>"/><s:property value="#mailMat.mailMatName"/></label>
</li>
</s:iterator>
</ul>
</div>
這一個是我的主要的jsp頁面,在這裏我只顯示標題部分和標記,必須動態地變化頁面非常大,無法上傳,我認爲這麼多就足夠了,
,並在第二jsp頁面中我有
<s:set name="tabNo" value="tabNo"/>
<s:if test="%{#tabNo==0}">
<s:form method="post" action="flyers" name='ldm_form' id='ldm_form_flyers'>
<!-- Question 1 -->
<div class="questionstep">
<div class="stepno">STEP 1</div>
<h2>Enter the correct DEC:</h2>
<input type="text" id="dec" name="oci.dec" value="" class="inputbx numericonly" maxlength="16" />
<div class="errbox">Please enter valid DEC</div>
<input type="button" value="" class="btn_continue" />
</div>
<!-- Question 2-->
<div class="questionstep">
<div class="stepno">STEP 2</div>
<h2>Select Your target program</h2>
<div class="errbox">Please select at lease one</div>
<s:iterator value="ordCaptAct.targetPrograms">
<input type="radio" name="tpId" value="<s:property value="tpId"/>"/><label id="<s:property value="tpId"/>"><s:property value="tpName"/></label><br/>
</s:iterator>
<input type="button" value="" class="btn_continue" />
</div>
<!-- Question 3 -->
<div class="questionstep">
<div class="stepno">STEP 3</div>
<h2>Select Your Mailing Materials</h2>
<div class="errbox">Please select at lease one</div>
<strong>Self Mailer</strong><br />
<div class="mailmaterials">
<ul class="questslider">
<s:iterator value="ordCaptAct.mailingmaterials" id="mailMat" begin="0" end="1">
<li>
<div class="quickpreview"><p>QUICK PREVIEW</p><div class="noshow">
<s:iterator value="#mailMat.templatePath" id="tempPath" begin="0" end="1">
<s:property value="#tempPath.ldmImgPath"/><s:property value="#tempPath.ldmImgName"/>,
</s:iterator>
</div></div>
<s:iterator value="#mailMat.templatePath" id="tempPath" begin="2">
<img src="<s:property value="#tempPath.ldmImgPath"/><s:property value="#tempPath.ldmImgName"/>" width="90" height="149" alt="" />
</s:iterator>
<br />
<label>
<input type="radio" name="mailMatId" value="<s:property value="#mailMat.mailMatId"/>"/><s:property value="#mailMat.mailMatName"/></label>
</li>
</s:iterator>
</ul>
</div>
而在jQuery的文件,我有這樣的
代碼直到這裏一切工作正常.....第二頁動態加載一切工作。但是,當它加載的,「btn_continue」必須調用一些jQuery函數像下面
$('#ldm_form_flyers .btn_continue').click(function(){
var getid = $('.btn_continue').index($(this));
switch(getid){
case 0:
var getval = $.trim($("input[name='oci.dec']").val());
if(getval=='' || getval.length!=16 || getval.match(/[^\d]/)){
$("input[name='oci.dec']").addClass('err');
$('.questionstep:eq('+getid+') .errbox').slideDown();
}
else{
$.getJSON("btn_continueAction?btn_continueId="+getid+"&oci.dec="+getval, function(data){
var isNext=data.savedInSession;
$('.stepsanswer').eq(getid).find('span').html(getval);
$("input[name='oci.dec']").removeClass('err');
$('.decanswer').html(getval);
if(isNext==true)
nextquestion(getid);
else
$('.questionstep:eq('+getid+') .errbox').slideDown();
});
}
break;
現在正在加載這一功能後無法正常工作。因此,我試圖加載第二頁中的jquery文件,然後它的工作正常,但它不止一次地啓動了服務器,因爲該文件被加載了兩次,然後是4次,然後是8次,並最終增加了我的應用程序的速度。下。所以是否有阻止加載的文件,或任何解決方案,爲什麼「btn_continue」不工作,沒有加載第二個jsp中的jquery文件... ?????
你有兩個jsp頁面,腳本標籤包含在每個頁面中? – Adil
我認爲在這裏可以看到敘述中描述的確切代碼。 –
您是否嘗試過使用modernizr?這是一個非常有用的js庫,用於這種工作http://modernizr.com/ – TheodoreV