Mala pomoć oko JavaScript-a

Prizma

Active member
Joined
Feb 13, 2017
Messages
461
Reaction score
76
Из неког разлога, ова функција ми је увек правила проблеме. Те ради те не ради, па ко има искуства, ако може мала помоћ 🙂

Хоћу да променим text-shadowing у једном диву за сва слова у њему. Све се одвија на једној html страници. Диву сам дао id=“main”. Унутар style тага сам ставио:
text-shadow: 5px 5px 1px limegreen;
То ради.
Хоћу да се то мења на 3 милисекунде. Ево га цео script таг:

<script> var con = 0; function change() { setInterval( function() { var d = document.getElementByID("main"); if( con == 1) { d.style.textShadow = "5px 5px 1px limegreen"; con = 0; } else { d.style.textShadow = "5px 5px 1px red"; con = 1; } } , 300); } </script>

Ето, то је то. Не видим где грешим.
Наравно, у див сам ставио onload=“change()”…
 
Last edited:

Prizma

Active member
Joined
Feb 13, 2017
Messages
461
Reaction score
76
alt
SickDope:
Div tag ne podrzava onload funkciju
Аааааааа. То објашњава те ради те не ради моменат.
Фала пуно.
 
Last edited:

Prizma

Active member
Joined
Feb 13, 2017
Messages
461
Reaction score
76
Ај да не отварам нову, мада се овде ради о jquery (исто му се 'вата)…

Дакле имам једну web страницу коју рендерује сервер. У самој страници, имам један partial view (када се учита основна страница, позива се ајакс и он добавља податке да у одређени
тутне још малко html-a).
У основној страници имам један таг са пар опција. У парцијалном делу се рендерује други селект () са пар других опција. Таг за скрипту коју сам прикачио на ову основну страницу иде овако:

Code:
/* loading func */
$(function ($) {
ajaxing(0);
$(’#view_mode’).change(function () {
ajaxing(0);
});
[CODE]        /*why this doesn't work as an event listener? */
        $('#page_size').change(function () {
            ajaxing(0);
        });
    });
    // page changing (button click) //
    function changePage(action) {
        ajaxing(action);
    }
    /* ajaxing? */
    function ajaxing(action) {
        var data = {
            ViewType: $('#view_mode').val(),
            UserStatusHash: $('#usr_hash').val(),
            UserName: '@Model.UserName',
            OldPageSize: $('#old_page_size').val(),
            PageSize: $('#page_size').val(),
            CurrentPage: $('#current_page').val(),
            TotalPages: $('#total_pages').val(),
            Paginate: $('#paginate').val(),
            DirectionVal: action
        }
        $.ajax({
            url: '/Article/Index_GetData',
            type: 'GET',
            cache: false,
            data: data
        }).done(function (result) {
            $('#left_content').html(result);
        });
    }
</script>
[/CODE]
Дакел проблем је што када се промени вредност у view_mode селекту, ајакс се позове нормално и део странице се изрендерује, као што је предвиђено. Међутим, ајакс уопште не реагује на промену вредности page_size селекта. Ово сам решио тако што сам у page_size селект додао:
<select id=“page_size” onchange=“ajaxing(0)”>
али ми иде на ганглије што не могу да провалим зашто му не чита вредност сам, већ морам у сам таг да стављам позив на ф-ју.
За додатне детаље, питајте офскроз :cool:
 
Last edited:

webad

Member
Joined
Jan 5, 2016
Messages
126
Reaction score
8
moguce je da ti zakacis onchange handler na page_size, ali nakon renderovanja tog parcijalnog dela, nakon rekreiranja celog dela se rekreira i page_size element, tj stari se unistava i kreira se novi. potencijalno taj novi nema zakacen onchange handler.
view_mode promena funkcionise jer taj deo ne unistavas i pravis ponovo, on ostaje sa zakacenim handler-ima.

ako je moja pretpostavka tacna, imas dve opcije:

  1. []nakon insert-ovanja html-a da pokacis ponovo handler-e koji ti trebaju
    [
    ]da handler-e ne kacis na konretne elemente vec na body
    • $(‘body’).on(‘change’, ‘#page_size’, function(e){ $(this) // element });
ako se odlucis za 2. opciju, javi da li ti radi. ovo je potencijalno velika optimizacija za onclick ako na strani imas mnogo slicnih dugmica. opterecujece je imati mnogo onclick handler-a, ovako se napravi samo jedan, jedino sto u telu f-je handler-a treba obraditi situaciju u odnosu na kliknuti element
 
Last edited:

Prizma

Active member
Joined
Feb 13, 2017
Messages
461
Reaction score
76
alt
webad:
ako se odlucis za 2. opciju, javi da li ti radi. ovo je potencijalno velika optimizacija za onclick ako na strani imas mnogo slicnih dugmica.
Вероватно ћу тако. Имам само два селекта и још 5~6 дугмади (button) за сада, ал на њих сам ставио да се изрендерују са onclick функцијом и неопходним параметрима.
Чим стигнем да се позабавим тиме, јављам резултате,
хвала
 
Last edited:

Prizma

Active member
Joined
Feb 13, 2017
Messages
461
Reaction score
76
$('body').on('change', '#page_size', function () { ajaxing(0); });

Ради :).
Не волим да држим позиве ф-ја у самим таговима. Овако бациш поглед на скрипту и одмах знаш шта ту отприлике има на страници.
alt
webad:
stari se unistava i kreira se novi. potencijalno taj novi nema zakacen onchange handler
Не знам те детаље функционисања јаваскрипта, тј кад он повезује (скенира?) DOM елементе… Додуше, до сад нисам имао потребе да се таквим стварима бавим.
 
Last edited:
Top