我知道我錯過了一些簡單的事情,但這是我第一個jQuery項目,我只是沒有找到問題。當我關閉代碼塊(})時; )爲#AddTopTier按鈕,沒有別的工作。我可以在所有事件結束之前把事情做得很好,但事情會使每個事件都依賴於事件 - 這會產生問題。後續事件沒有觸發
我已經創建此琴:https://jsfiddle.net/tLx8epqr/1/
對於那些誰不想去那裏,這裏有一些細節。
我有這樣的:
$(document).ready(function(){
var i = 1
var s = 1
//Add code for Tier display
$('#AddTopTier').click(function(){
var tierStr="<DIV ID='divTier"+i+"' style='width: 400px; border:2px dotted #0099CC; padding: 5px;'>"
tierStr=tierStr + "<INPUT TYPE='text' size='20' NAME='inputName"+i+"' ID='inputName"+i+"' VALUE='"+ $('#NewTierName').val()+ "'></INPUT>"
tierStr=tierStr + "<INPUT TYPE='text' ID='Tier"+i+"' NAME='Tier"+i+"' CLASS='tierScore"+i+"' VALUE='30' SIZE='2' MAXLENGTH='3' DISABLED></INPUT>"
tierStr=tierStr + "<INPUT TYPE='button' ID='btnUpTier"+i+"' CLASS='upTier' VALUE='+'></INPUT>"
tierStr=tierStr + "<INPUT TYPE='button' ID='btnDownTier"+i+"' CLASS='dwnTier' VALUE='-'></INPUT>"
tierStr=tierStr + " <INPUT TYPE='button' ID='btnAddSkill"+i+"' CLASS='btnAddSkill' VALUE='Add Skill'></INPUT>"
tierStr=tierStr + "</DIV><p/>"
i++;
$('#Contents').append(tierStr);
//End Tier display
}); //This is the issue. Closing the code block here prevents the next code block from executing. I can move this to the end, but that creates and unacceptable dependency.
//Add code for Skill display
$(".btnAddSkill").unbind().click(function(){
//make sure there are enough Skill Points
if(parseFloat($('#SkillPts').val()) < 1){
alert("You don't have enough skill points.")
}
else
{
//find the name of the div and strip out 'div' to leave the tier name
var tier = ($(this).parent('div').attr('id'));
tier = tier.replace("div","");
var skillStr="<br/> <INPUT TYPE='text' size='20' ID='skillName"+i+"' VALUE=''></INPUT>"
skillStr=skillStr + "<INPUT TYPE='text' NAME='Skill"+s+"' ID='Skill"+s+"' CLASS='skill"+tier+"' VALUE='' SIZE='2' MAXLENGTH='3' DISABLED></INPUT>"
skillStr=skillStr + "<INPUT TYPE='button' ID='btnUpSkill"+s+"' CLASS='upSkill' VALUE='+'></INPUT>"
skillStr=skillStr + "<INPUT TYPE='button' ID='btnDownSkill"+s+"' CLASS='dwnSkill' VALUE='-'></INPUT>"
//append this to the div associated with the appropriate Tier for display
$(this).parent('div').append(skillStr);
//find the name of the div and strip out 'div' to leave the tier name
var tier = ($(this).parent('div').attr('id'));
tier = tier.replace("div","");
//Find the skill's Tier Score, add 5
$('#Skill'+s).val(parseFloat($('#'+tier).val())+5);
//Decrease the available Skill Points by 1
$('#SkillPts').val(parseFloat($('#SkillPts').val())-1);
s++
}
//End Skill display
}); //...and so on...
如前所述,我預計#AddTopTier事件可允許.btnAddSkill事件執行關閉,但這沒有發生。
(順便說一句:我知道這是不是優美的代碼 - 正如我所說,這是我第一次嘗試 - 種去大或回家這個問題是在得到它清理的步驟之一。)
提前致謝。
看起來像.on()函數就是我所需要的!是的,我需要更好地理解綁定 - 與服務器端的東西(我更熟悉的地方)完全不同。我試圖獲得足夠的聲譽來解決您的問題。當我這樣做,它會顯示。謝謝! – BrianV