سؤال

أحاول أن أفعل نفس الشيء مثل مثال DAVS RAUNS:http://blog.davglass.com/files/yui/tab3/

ولكن يجب أن أنسى شيئا ...

لدي هذا الخطأ:

لم يتم العثور على العقدة "الرمز:" 8 [كسر على هذا الخطأ] this._tabparent.removechild (tab.get (العنصر))؛

هنا الرمز الخاص بي:

function onGenePubmedSubmit() {

var contentCur = document.getElementById("curatedquery");
var contentValue = contentCur.value;

// New tabView widget
var tabView = new YAHOO.widget.TabView('tvcontainer');

// Define label and content
var labelText = nameReq + '<span class="close">X</span>';
var tabcontainer = idReq;
var content = "<div id="+tabcontainer+"></div>";

// Add new tab - work well !
if (labelText && content)
{
tabView.addTab( new YAHOO.widget.Tab({
                label:labelText,
                content:content,
                id: 'pubmedView',
                active:true }));
                }

// Define DataTable myPubmedListTable Columns
var myColumnDefsPubmed = [
    {key:"pmid", label:"PMID", sortable:true},
    {key:"articletitle", label:"Article Title", sortable:true},
    {key:"abstract", label:"Abstract", sortable:true},
    {key:"authorlist", label:"Authorlist", sortable:true},
    {key:"medline", label:"Medline", sortable:true}
    ];

// Define DataSource
var myDataSourcePubmed = new YAHOO.util.DataSource("qct-list-article.html");
myDataSourcePubmed.responseType = YAHOO.util.DataSource.TYPE_JSON;
myDataSourcePubmed.connXhrMode = "queueRequests";
myDataSourcePubmed.responseSchema = {
  resultsList: "articleItemList",
  fields: ["pmid","articletitle","abstract","authorlist","medline"]
  };

// myPubmedListTable config
var oConfigsPubmed = {
    initialRequest: '?term='+ contentValue,
    selectionMode: "single"
    };

// Create new DataTable - myPubmedListTable
var myPubmedListTable = new YAHOO.widget.DataTable(idReq, myColumnDefsPubmed, myDataSourcePubmed,oConfigsPubmed);

// Show myPubmedListTable
myPubmedListTable.onShow();

// Remove tab on tabView ----------- this part don't work---------- !          
YAHOO.util.Event.on(tabView.getElementsByClassName('close')[0], 'click', function(ev) {
YAHOO.util.Event.stopEvent(ev);
             //  some test - but don't work !               
             //  tabView.set('activeTab', tabView.get('tabs')[0]);
             //  tabView.set('activeIndex', 1);
             //  tabView.removeTab(tabView.get("activeTab"));
tabView.removeTab(tabView);
                      });
}

هل يستطيع احد مساعدتي ؟

ما أفتقده؟

شكرا لك.

هل كانت مفيدة؟

المحلول 3

لقد وجدت حلا يعمل، وأضفت paginator.

function onGenePubmedSubmit() {

var contentCur = document.getElementById("curatedquery");
var contentCurValue = contentCur.value;

var tabView = new YAHOO.widget.TabView('tvcontainer');

var labelText = nameReq + '<span class="close">X</span>';
var tabcontainer = idReq;
var content = "<div id="+tabcontainer+"></div>";

if (labelText && content)
{
 var ctabView = new YAHOO.widget.Tab({
 label:labelText,
 content:content,
 id: 'pubmedView'+idReq,
 active:true });
}

YAHOO.util.Event.on(ctabView.getElementsByClassName('close')[0], 'click',
function(ev) {
YAHOO.util.Event.stopEvent(ev);

// Verify if Tab to remove is curently the activ Tab
if (tabView.get('activeTab')==ctabView)
{
 // We activate the first Tab
 tabView.set('activeTab', tabView.get('tabs')[0]);
}
 // If Tab to remove not activ Tab
else if (tabView.get('activeTab')!=ctabView)
{
 // We set the index of the Tab that is currently active in the TabView.
 tabView.set('activeIndex',tabView.get('activeIndex')); 
}

tabView.removeTab(ctabView);
});

// Verify if tab exist (or not)
var tabExist = document.getElementById('pubmedView'+idReq);
if (tabExist == null)
{
 tabView.addTab(ctabView);
}
else
{
 alert("Tab already exist")  ;
}

// Define DataTable myPubmedListTable Columns
var myColumnDefsPubmed = [
{key:"pmid", label:"PMID", sortable:true},
{key:"articletitle", label:"Article Title", sortable:true},
{key:"abstract", label:"Abstract", sortable:true},
{key:"authorlist", label:"Authorlist", sortable:true},
{key:"medline", label:"Medline", sortable:true}
];

// Define DataSource
var myDataSourcePubmed = new YAHOO.util.DataSource("qct-list-article.html");
myDataSourcePubmed.responseType = YAHOO.util.DataSource.TYPE_JSON;
myDataSourcePubmed.connXhrMode = "queueRequests";
myDataSourcePubmed.responseSchema = {
resultsList: "articleItemList",
fields: ["pmid","articletitle","abstract","authorlist","medline"],
metaFields: {
totalRecords: "totalArticleRecords" // Access to value in the server response
}
};

// Add Paginator
var pubmedPaginator = new YAHOO.widget.Paginator({
rowsPerPage: 5,
template: YAHOO.widget.Paginator.TEMPLATE_ROWS_PER_PAGE,
rowsPerPageOptions: [5,10,15,20]
});

var myRequestPubmedBuilder = function(oState,oSelf)
{
oState = oState || {pagination:null, sortedBy:null};

var retstart = (oState.pagination != null) ? oState.pagination.recordOffset : 0;
var retmax = (oState.pagination != null) ? oState.pagination.rowsPerPage : 5;

return '?term=' + contentCurValue + '&retstart=' + retstart + '&retmax=' + retmax;
}

// myPubmedListTable config
var oConfigsPubmed = {
initialRequest: '?term=' + contentCurValue + '&retstart=0' + '&retmax=5',
dynamicData: true, // Enables dynamic server-driven data
selectionMode: "single",
paginator: pubmedPaginator,
generateRequest : myRequestPubmedBuilder,
caption : "Pubmed articles for this query : " //+ contentCountPubmed
};

// Create new DataTable - myPubmedListTable
if (tabExist == null)
 {
 var myPubmedListTable = new YAHOO.widget.DataTable(idReq, myColumnDefsPubmed, myDataSourcePubmed,oConfigsPubmed);


 myPubmedListTable.handleDataReturnPayload = function(oRequest, oResponse, oPayload) {
 if (oPayload == undefined)
 { oPayload = {}; }

 oPayload.totalRecords = oResponse.meta.totalRecords;
 return oPayload;
 }

 // Show myPubmedListTable
 myPubmedListTable.onShow();
 }
}

نصائح أخرى

يبدو أن هناك بعض الأشياء الغريبة على قدم وساق هنا؛ لا أستطيع أن أرى حيث يتم تعريف IDREQ، ويتم تعريف المحتوى مرتين.

أتساءل عما إذا كان المحتوى شخصا غريبا مثل <div id=></div> يمكن أن يسبب ذلك.

لقد قمت ببعض التغييرات: الآن فقط محتوى واحد (محتوى Firt هو الآن Contentcur).

ولكن نفس الخطأ.

في الرمز الخاص بي: يحدد IDREQ باسم عالمي (لا بأس - يمكنني إضافة علامات تبويب)، لدي شيء مثل:

<div id=901></div>

أعتقد أن المشكلة في (ولكن ما أفتقده؟): yahoo.util.event.on (tabview.getelementsbyclassname ("إغلاق") [0]، "انقر"، وظيفة (EV) {...

شكرا لك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top