none
Javascript para de funcionar após postback

    Pergunta

  • Olá pessoal,

    Imagino que a maioria de vocês conheçam o twitter boostrap (http://twitter.github.com/bootstrap/)

    É uma coleção de css + javascript com jquery e html5, que geram uma coleção de componentes prontos para ui web.

    Bem, tenho alguns destes componentes na minha aplicação, que funcionam muito bem.
    Entretanto, após dar o postback, as funções dos componentes param de funcionar.
    Ou seja, por algum motivo, após o postback, os javascripts param de funcionar.

    Minha página tem ajax updatepanel.

    Alguém tem idéia do que pode ser?

    Fiz a mesma pergunta no fórum do twitter-boostrap, parece que chegamos perto do problema, mas não sei como resolvê-lo.
    http://stackoverflow.com/questions/10238650/javascripts-not-working-after-postback

    Obrigado pela ajuda!

    Abraços.


    Leandro Faria
    PMP, PMI-ACP, CSM, ITIL, FCE, MCITP, MCPD, MCTS, MCT
    MCITP e MCPD SharePoint 2010
    http://leandrofaria.com.br/blog
    http://br.linkedin.com/in/leandrofaria
    http://twitter.com/lhfaria

    segunda-feira, 23 de abril de 2012 02:10

Todas as Respostas

  • Leandro veja

    http://stackoverflow.com/questions/256195/jquery-document-ready-and-updatepanels


    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    • Marcado como Resposta Harley AraujoOwner terça-feira, 24 de abril de 2012 12:21
    • Não Marcado como Resposta Leandro Faria quarta-feira, 25 de abril de 2012 23:12
    segunda-feira, 23 de abril de 2012 11:44
    Moderador
  • Tentou trocar onde chama

    $(document).ready(function()

    por

    function pageLoad()

    ?

    • Marcado como Resposta Harley AraujoOwner terça-feira, 24 de abril de 2012 12:21
    • Não Marcado como Resposta Leandro Faria quarta-feira, 25 de abril de 2012 23:11
    segunda-feira, 23 de abril de 2012 12:14
  • Seilor, o caminho é este mesmo, mas tentei e não deu certo.

    Na verdade eu só adiciono a propriedade data-toggle="dropdown" aos elementos asp.net e o javascript já faz tudo.

    Veja qual é o código do .js

    !function( $ ){
    
      "use strict"
    
     /* DROPDOWN CLASS DEFINITION
      * ========================= */
    
      var toggle = '[data-toggle="dropdown"]'
        , Dropdown = function ( element ) {
            var $el = $(element).on('click.dropdown.data-api', this.toggle)
            $('html').on('click.dropdown.data-api', function () {
              $el.parent().removeClass('open')
            })
          }
    
      Dropdown.prototype = {
    
        constructor: Dropdown
    
      , toggle: function ( e ) {
          var $this = $(this)
            , selector = $this.attr('data-target')
            , $parent
            , isActive
    
          if (!selector) {
            selector = $this.attr('href')
            selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
          }
    
          $parent = $(selector)
          $parent.length || ($parent = $this.parent())
    
          isActive = $parent.hasClass('open')
    
          clearMenus()
          !isActive && $parent.toggleClass('open')
    
          return false
        }
    
      }
    
      function clearMenus() {
        $(toggle).parent().removeClass('open')
      }
    
    
      /* DROPDOWN PLUGIN DEFINITION
       * ========================== */
    
      $.fn.dropdown = function ( option ) {
        return this.each(function () {
          var $this = $(this)
            , data = $this.data('dropdown')
          if (!data) $this.data('dropdown', (data = new Dropdown(this)))
          if (typeof option == 'string') data[option].call($this)
        })
      }
    
      $.fn.dropdown.Constructor = Dropdown
    
    
      /* APPLY TO STANDARD DROPDOWN ELEMENTS
       * =================================== */
    
      $(function () {
        $('html').on('click.dropdown.data-api', clearMenus)
        $('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle)
      })
    
    }( window.jQuery );

    Obrigado, abraços.


    Leandro Faria
    PMP, PMI-ACP, CSM, ITIL, FCE, MCITP, MCPD, MCTS, MCT
    MCITP e MCPD SharePoint 2010
    http://leandrofaria.com.br/blog
    http://br.linkedin.com/in/leandrofaria
    http://twitter.com/lhfaria

    quarta-feira, 25 de abril de 2012 23:14
  • Ola Leandro, o post é antigo mas estou com o mesmo problema..e no meu caso tenho um arquivo externo de JS. 

    Após o postback, deixa de funcionar todas as funções....

    Vc resolveu?

    Minhas referencias de  js, css e bootstrap estão todos na master page.

    Projeto vs2010 c#.

    Se puder ajudar agradeço

    t+

    quarta-feira, 25 de janeiro de 2017 22:50