2013-10-09 25 views
1

我使用RightNow CRM軟件,並且我們的支持門戶編碼的一部分是我必須使用YUI腳本而不是jQuery,因爲最佳實踐(只使用一個腳本庫)。我已經包含了我想轉換爲YUI的jQuery腳本以及我嘗試的YUI「翻譯」。任何幫助都會很長,我使用this website來執行這些翻譯。將jQuery腳本轉換爲YUI:複選框複製到自定義小部件

jQuery script

$(function() { 
$('input').on('click', function() { 
    var values = []; 
    $('input:checked').each(function() { 
     values.push($(this).parent().text()); 
    }); 
    $('[name="result"]').attr({value: values.join(', ')}); 
}); 
}); 

YUI script

YUI().use('node', 'io', 'event', 'animation', function (Y) { 
Y.all('input[type=checkbox]').delegate('click', function(Y) { 
    var values = []; 
    Y.all('input:checked').each(function(Y) { 
     values.push((this).parent().text()); 
    }); 
    Y.one('result').setAttribute({value: values.join(', ')}); 
}); 
}); 

回答

1

你可以試試這個...其實我無法測試,因此我試圖猜測它應該做的。還有一些對「翻譯」的改進。

YUI().use('node', 'io', 'event', 'animation', function (Y) { 
    Y.all('input[type=checkbox]').on('click', function(event) { 
     var values = []; 
     Y.all('input:checked').each(function(checkbox) { 
      values.push(checkbox.ancestor().getHTML()); 
     }); 
     Y.one('[name=result]').set("value", values.join(', ')); 
    }); 
}); 
1

太棒了!我測試了它,它工作,但顯示的HTML;我將你的「.getHTML」標籤改爲「get('text')」,它完美的工作! You can see it here

YUI().use('node', function (Y) { 
Y.all('input[type=checkbox]').on('click', function(event) { 
    var values = []; 
    Y.all('input:checked').each(function(checkbox) { 
     values.push(checkbox.ancestor().get('text')); 
    }); 
    Y.one('[name=result]').set("value", values.join(', ')); 
}); 
});