我有一個ascx中的jQuery代碼,它從gridview獲取單元格內容並對其進行處理,然後將其寫入其他單元格。jQuery - 從點擊事件改變頁面加載功能
它通過點擊gridview行來激活。 (每行都有一個帶有Word文件名的第一個單元格,用戶點擊一行 - jQuery在第一個單元格中獲取文件名,並將擴展名更改爲flv/mp3 - 檢查是否存在具有新名稱的文件 - 如果有一個文件,它會創建一個圖像鏈接到該文件)
我在這段代碼上努力工作,但現在客戶端想要這個事件(意思是圖像鏈接顯示,如果有一個文件與flv/mp3)將在頁面加載時發生。
我不想再寫一遍,認爲應該有辦法改變點擊事件。
的問題是,我不是很高效使用jQuery :)這個
可以將某些jQuery的能手的幫助?
下面是代碼(我不是與此代碼自豪,但它的工作):
<script type="text/javascript">
jQuery(function() {
jQuery(".SearchResultsGV > tbody > tr:not(:has(table, th))")
.css("cursor", "pointer")
.one("click", function(e) {
var jQuerycell = jQuery(e.target).closest("td");
var jQuerycurrentCellText = jQuerycell.text();
var jQueryleftCellText = jQuerycell.prev().text();
var jQueryrightCellText = jQuerycell.next().text();
var jQuerycolIndex = jQuerycell.parent().children().index(jQuerycell);
var jQuerycolName = jQuerycell.closest("table")
.find('th:eq(' + jQuerycolIndex + ')').text();
//Check media 1
jQuery.ajax({
url: 'http://dtora.org.il/Portals/0/Shiurim/' + jQuerycell.parent().children().first().text().replace('.doc', '.mp3'),
type: 'HEAD',
error:
function() {
//do something depressing
jQuery(jQuerycell.parent().children().last()).append("<img src=http://dtora.org.il/Portals/0/images/noFiles.png />");
},
success:
function() {
//do something cheerful :)
var jQueryMedia1Name = ('<a href=http://dtora.org.il/Portals/0/Shiurim/' + jQuerycell.parent().children().first().text().replace('.doc', '.mp3') + '><img class="soundFile" src=http://dtora.org.il/Portals/0/images/Music.png /></a>')
jQuery(jQuerycell.parent().children().last()).append(jQueryMedia1Name);
}
});
//Check media 2
jQuery.ajax({
url: 'http://dtora.org.il/Portals/0/Shiurim/' + jQuerycell.parent().children().first().text().replace('.doc', '.flv'),
type: 'HEAD',
error:
function() {
//do something depressing
jQuery(jQuerycell.parent().children().last()).append("<img src=http://dtora.org.il/Portals/0/images/noFiles.png />");
},
success:
function() {
//do something cheerful :)
var jQueryMedia2Name = ('<a href=http://dtora.org.il/Portals/0/Shiurim/' + jQuerycell.parent().children().first().text().replace('.doc', '.flv') + '><img class="videoFile" src=http://dtora.org.il/Portals/0/images/Video.png /></a>')
jQuery(jQuerycell.parent().children().last()).append(jQueryMedia2Name);
}
});
});
});
</script>
Amireh,非常感謝這個詳細的解答。我會試一試,並會讓你知道它是如何工作的。 – Yehuda 2010-10-27 23:08:17
謝謝,Amireh。無論如何,使用ID是一個問題,因爲gridview。其餘的代碼似乎解決了加載問題,但我還不確定。 – Yehuda 2010-10-28 06:45:44