Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   javascript запуск функции (https://javascript.ru/forum/misc/39885-javascript-zapusk-funkcii.html)

alexandr2006 15.07.2013 18:41

javascript запуск функции
 
$("#other_source_list .s_other_source").live("click",function(e){
    e.preventDefault();
    getOneNews({"news_id":$(this).attr("data-id"),"func":function(){
        $("#other_source_list").css("dispaly","none");
            location.href="/news/"+data.data.id+"-"+data.data.url;
    }
});
})

Сама ф-я:
function getOneNews(obj){
 
$.ajax({
        url:"/FrontAjax/oneNews",
        type:"POST",
        data:'news_id='+obj.news_id,
        timeout:3000,
 
        error: function(){
            showError("Новость недоступна. Обновите страницу и попробуйте ещё раз")
        },
        success:function(data){
            if(obj.func)     obj.func.call();        
 
        }
    });
}


Вопрос - как результат ajax запроса передать внутрь call, а то у меня ошибка: ReferenceError: data is not defined
location.href="/news/"+data.data.id+"-"+data.data.url;

animhotep 15.07.2013 18:53

может так)
obj.func.call(data);

alexandr2006 15.07.2013 19:02

Цитата:

Сообщение от animhotep (Сообщение 262459)
может так)
obj.func.call(data);

тоже самое

danik.js 15.07.2013 19:09

Во первых data должна быть в аргументах вызываемой функции: function(data) {...}
Во, вторых в функцию call первым аргументом указывается контекст, а последующими - уже передаваемые агрументы, так что:
obj.func.call(null, data)

но можно ведь проще:
obj.func(data)

alexandr2006 15.07.2013 19:16

Цитата:

Сообщение от danik.js (Сообщение 262463)
Во первых data должна быть в аргументах вызываемой функции: function(data) {...}
Во, вторых в функцию call первым аргументом указывается контекст, а последующими - уже передаваемые агрументы, так что:
obj.func.call(null, data)

но можно ведь проще:
obj.func(data)

Вау, да ты крут!!!!!! Завелась машинка.

Еще вопрос-
<script src="https://apis.google.com/js/plusone.js">{parsetags: 'explicit','lang': 'ru_RU'}</script> - что за запись такая и как ее переписать? Хочу попробовать через .getScript() эту беду грузить


Часовой пояс GMT +3, время: 06:25.