Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: вызов функции
 
 автор: jden   (22.01.2008 в 21:44)   письмо автору
 
 

Всем привет!
Я java разработчик и js плоховато знаю..(
Решил поюзать extjs ( http://extjs.com/) и собственно возникла проблема с вызовов функции,при клике на линк.
Вот код:


 
Ext.onReady(function() {
var win;
Ext.QuickTips.init();
var xg = Ext.grid;
var datastore;


    var recordType = Ext.data.Record.create([

    {name: "id", mapping:"server.serverId", type: "int"},
    {name: "serverId", mapping:"server.serverId ", type: "int"},
    {name: "serverName", mapping:"server.stpObject.objectName", type: "string"},
    {name: "roadName", mapping:"server.stpObject.road.roadName ", type: "string"},
    {name: "tnsName", mapping:"server.tnsName", type: "string"},
    {name: "dbScheme", mapping:"server.dbScheme", type: "string"},
    {name: "oasHost", mapping:"server.oasHost", type: "string"},
    {name: "oasPort", mapping:"server.oasPort", type: "int"},
    {name: "siteIp", mapping:" server.siteIp", type: "string"},
    {name: "virtPath", mapping:"server.virtualPath", type: "string"}]);


    datastore = new Ext.data.GroupingStore({
        proxy: new Ext.data.DWRProxy(MyService.getServers, true),
        reader: new Ext.data.ListRangeReader(
        {id:'id', totalProperty:'totalSize'}, recordType),
        sortInfo:{field: 'serverName', direction: "ASC"},
        groupField:'roadName'
    });

    datastore.on("load", function () {
    });
    datastore.load({params:{start:0, limit:22}, arg:['walter', true]});


    win = new Ext.Window({
        el:'hello-win',
        layout:'fit',
        width:500,
        height:300,
        closeAction:'hide',
        plain: true,

        items: new Ext.TabPanel ({
            el: 'hello-tabs',
            autoTabs:true,
            activeTab:0,
            deferredRender:false,
            border:false
        }),

        buttons: [{
            text:'Submit',
            disabled:true
        },{
            text: 'Close',
            handler: function() {
                win.hide();
            }
        }]
    });

      win.show();



              // pluggable renders
    function render3w(value, p, record) {
        return String.format(
                '<b><a href="http://{1}:{2}/POS/POST?sysinfo" target="_blank">{0}</a></b>' +
                '<a href="http://{1}" target="_blank"></a>',
                '[WWW]', record.data.oasHost, record.data.oasPort
        /*record.data.server.stpObject.objectName , record.data.server.serverId, record.data.record.server.serverId*/);
    }


    function renderIp(value, p, record) {
        return String.format(
                '<b><a href="javascript:test()" >{0}</a></b>' +
                '<a href="javascript:test();" ></a>',
                '[IP]', record.data.siteIp, record.data.oasPort);
    }


    function test() {
        alert(this);
    }


 

    var grid = new xg.GridPanel({
        store: datastore,
        columns: [
        {header: "serverName", width: 100, sortable: true, dataIndex: 'serverName'},
        {header: "tnsName", width: 150, sortable: true, dataIndex: 'tnsName'},
        {header: "dbScheme", width: 60, sortable: true, dataIndex: 'dbScheme'},
        {header: "virtPath", width: 40, sortable: true, dataIndex: 'virtPath'},
        {header: "roadName", width: 150, sortable: true, dataIndex: 'roadName'},
        {width: 40, sortable: true, dataIndex: 'oasHost',renderer: render3w},
        {width: 40, sortable: true, dataIndex: 'roadName',renderer: renderIp}],


        view: new Ext.grid.GroupingView({
            forceFit:true,
            groupTextTpl: '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'
        }),

        frame:true,
        width: 700,
        height: 450,
        collapsible: true,
        animCollapse: false,
        title: 'TST',
        iconCls: 'icon-grid',
        renderTo: document.body
    });

});



Собственно есть функция:

   function renderIp(value, p, record) {
        return String.format(
                '<b><a href="javascript:test()" >{0}</a></b>' +
                '<a href="javascript:test();" ></a>',
                '[IP]', record.data.siteIp, record.data.oasPort);
    }


Которая реализует линки в моём гриде. При тырке на линк в должна вызываться функция test():

    function test() {
        alert(this);
    }


Здесь,в тестовом варианте должен выскакивать алерт ,в реальности,мне нужно в этот test запихнуть
инициализацию нового ext контейнера,сейчас оно просто вне функции:


  win = new Ext.Window({
        el:'hello-win',
        layout:'fit',
        width:500,
        height:300,
        closeAction:'hide',
        plain: true,

        items: new Ext.TabPanel ({
            el: 'hello-tabs',
            autoTabs:true,
            activeTab:0,
            deferredRender:false,
            border:false
        }),

        buttons: [{
            text:'Submit',
            disabled:true
        },{
            text: 'Close',
            handler: function() {
                win.hide();
            }
        }]
    });

      win.show();


Но это не так важно:) Вообщем проблема в том,что test почему-то просто не вызывается..ни ошибок,ничего..firefox просто открывает новую вкладку с пустым контентом..
Но мне нужно,чтобы функция test была именно внутри
Ext.onReady(function() {

Потомучто во время инициализации 2-го окна,я должен передавать значения переменных
recordType 


Ребята,почему она не вызывается?..что я не так делаю? Почему фунцкции renderIp() и render3w() срабатывают,а test нет?..
Жду вашего совета. Спасибо)

   
 
 автор: jden   (22.01.2008 в 21:56)   письмо автору
 
   для: jden   (22.01.2008 в 21:44)
 

Да,то что


    '<b><a href="javascript:test()" >{0}</a></b>' +
                '<a href="javascript:test();" ></a>',


- это нормально. Хотя должно быть:


    '<b><a href="javascript:test();" >{0}</a></b>' +
                '<a href="javascript:test();" ></a>',
[/code]

Добавил ; ..,но всё также.. Вызывается только один раз:
   '<b><a href="javascript:test();" >{0}</a></b>'


эта тема:


'<a href="javascript:test();" ></a>'
- остаток кривых ручек,не обращайте внимания.. Это никогда не вызывается

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования