2009-09-11 36 views
2

好的,問題沒有意義。這是情況。我有使用「Anthem」ajax的遺留代碼,並且Anthem允許鉤入前後回調步驟。所以如果我有這樣的代碼,我該如何在cmdSave_PostCallBack中的每個塊下執行代碼。我知道我不能以它的方式調用它,但是在加載doc時以及在postcallback函數中,將允許此塊執行的方式是什麼?如何從JQuery塊外部調用JQuery塊

jQuery(document).ready(function() { 
    //select all anchors in divMain element and attach click handler 
    $("#<%=divSelectorLinks.ClientID %> a").click(function(e) { 
     e.preventDefault(); 
     var content = $(this.getAttribute("rel")); 
     //attach nyromodal 
     $.nyroModalManual({ 
      bgColor: '#efefef', 
      width: 200, 
      content: content 
     }) 
    }) 
    //display currently selected value 
    .each(function(i) { 
     var selectionText = $(this.getAttribute("rel")).find(':selected')[0].innerHTML; 
     if (selectionText.substr(0, 4) == "All ") { 
      this.innerHTML += ": All"; 
     } 
     else { 
      this.innerHTML = this.innerHTML + ": " + selectionText; 
     } 
    }); 
    return false; 
}); 

function cmdSave_PostCallBack() { 

} 
+0

移動的各功能出一個單獨的命名JavaScript函數。如果您將它稱爲ThisFunction,則可以使用像.each(ThisFunction)這樣的代碼在每個塊內重用它。 – 2009-09-11 00:13:40

回答

0

難道是就像將.each轉換成自己的功能並從ready和cmdSave_PostCallBack中調用它一樣簡單?

喜歡的東西:

jQuery(document).ready(function() { 
    //select all anchors in divMain element and attach click handler 
    $("#<%=divSelectorLinks.ClientID %> a").click(function(e) { 
     e.preventDefault(); 
     var content = $(this.getAttribute("rel")); 
     //attach nyromodal 
     $.nyroModalManual({ 
      bgColor: '#efefef', 
      width: 200, 
      content: content 
     }) 
    }); 
    displayCurrentlySelectedValues(); 
    return false; 
}); 

function cmdSave_PostCallBack() { 
    displayCurrentlySelectedValues(); 
} 

function displayCurrentlySelectedValues() { 
    //Note how this uses the same selector as in .ready 
    $("#<%=divSelectorLinks.ClientID %> a") 
    .each(function(i) { 
     var selectionText = $(this.getAttribute("rel")).find(':selected')[0].innerHTML; 
     if (selectionText.substr(0, 4) == "All ") { 
      this.innerHTML += ": All"; 
     } 
     else { 
      this.innerHTML = this.innerHTML + ": " + selectionText; 
     } 
    }); 
    return false; 

} 
+0

接受這一個,因爲我能夠複製/粘貼,它的工作。提高了IP的初始答案。多謝你們。 – epitka 2009-09-11 00:24:10

1

創建另一個功能(我們將稱之爲驢),並使用在每個:

(對不起,格式化有點搞砸)

... 
.each(donkey); 

function cmdSave_PostCallBack() { 
    donkey(1); 
} 

function donkey(i) { 
    var selectionText = $(this.getAttribute("rel")).find(':selected')[0].innerHTML; 
    if (selectionText.substr(0, 4) == "All ") { 
     this.innerHTML += ": All"; 
    } 
    else { 
     this.innerHTML = this.innerHTML + ": " + selectionText; 
    } 
    }); 
return false; 
} 
+0

我希望函數的名字不是暗示某事:)。所以,jQuery函數不一定要在Query(document).ready(function(){}塊內。 – epitka 2009-09-11 00:14:37

+1

:o)沒錯,它可以是一個命名的javascript函數 – Paul 2009-09-11 00:16:30

+1

對,jQuery可以在任何地方使用。 – chaos 2009-09-11 00:16:34