powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / вызов функции в js
6 сообщений из 6, страница 1 из 1
вызов функции в js
    #35080997
livehacker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Я java разработчик и js плоховато знаю..(
Решил поюзать extjs ( http://extjs.com/) и собственно возникла проблема с вызовов функции,при клике на линк.
Вот код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
 
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
    });

});


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

Код: plaintext
1.
2.
3.
4.
5.
   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():
Код: plaintext
1.
2.
    function test() {
        alert(this);
    }


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

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
  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 была именно внутри
Код: plaintext
Ext.onReady(function() {

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


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


Да,то что
Код: plaintext
1.
2.
3.
4.
5.
  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);
    }


т.е две
Код: plaintext
1.
    '<b><a href="javascript:test();" >{0}</a></b>' +
                '<a href="javascript:test();" ></a>',

Вызывается только это

Код: plaintext
  '<b><a href="javascript:test();" >{0}</a></b>' +
Не обращайте внимание:)..это так..

И ещё вот что,если я за место test(); пишу alert(this);,то алерт срабатывает,т.е код выглядит так:

Код: plaintext
1.
2.
3.
4.
5.
  function renderIp(value, p, record) {
        return String.format(
                '<b><a href="javascript:alert(this);" >{0}</a></b>' +
                '<a href="javascript:test();" ></a>',
                '[IP]', record.data.siteIp, record.data.oasPort);
    }

Подскажите плиз,что я не так делаю и как мне правильно вызвать функцию test() ?
...
Рейтинг: 0 / 0
вызов функции в js
    #35081596
livehacker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неужели никто не знает?
...
Рейтинг: 0 / 0
вызов функции в js
    #35081616
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Многа букав...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
вызов функции в js
    #35082586
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раз уж такая пьянка, то:

1. Вместо "Ext.onReady(function() { ..." должно быть "Ext.onReady = function() { ...". Соответственно, вместо "handler: function() {win.hide();}" надо "handler = function() {win.hide();};"
2. Никогда не использовал комбинацию Ident1.Ident2 (с точкой) и не уверен, что будет нормально работать. А определения объекта Ext я не увидел.
3. В линке обычно выполнение функций ставится не на href, а на onclick. Типа <a href="javascript: void(0);" onclick="test(); return true;">.

Если аватар - продвинутый программер и просто указал не весь код, то приношу извинения; если нет, то можно и прислушаться ...
...
Рейтинг: 0 / 0
вызов функции в js
    #35084833
livehacker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckРаз уж такая пьянка, то:

1. Вместо "Ext.onReady(function() { ..." должно быть "Ext.onReady = function() { ...". Соответственно, вместо "handler: function() {win.hide();}" надо "handler = function() {win.hide();};"
2. Никогда не использовал комбинацию Ident1.Ident2 (с точкой) и не уверен, что будет нормально работать. А определения объекта Ext я не увидел.
3. В линке обычно выполнение функций ставится не на href, а на onclick. Типа <a href="javascript: void(0);" onclick="test(); return true;">.

Если аватар - продвинутый программер и просто указал не весь код, то приношу извинения; если нет, то можно и прислушаться ...

Если вы пользовали Ext,то так можно делать и весь код,который я постил выше - рабочий.
Вот кстати ответ на пунк 1 - там есть пару примерчиков в onReady ..
Про пункт 3 - да,вы правы,лучше делать в onclick,потомучто акшн объекта поймать удобнее:)..А так - тоже работает.

Я разобрался с проблемой,если кому интересно,могу написать..
...
Рейтинг: 0 / 0
вызов функции в js
    #35084840
livehacker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя про пункт 3 - просто работает,я не совсем уверен,правильно ли это:)..Делаю всё же по onclick'у..так точно правильнее)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / вызов функции в js
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]