Soy nuevo en la interfaz y he estado trabajando en esta aplicación durante cuatro días con Flask. Busqué en el sitio y probé todos los métodos, incluido $(".selector").on() y otras cosas, pero no pude resolver el problema.
Básicamente, hay tres plantillas en mi aplicación, la primera recibirá información de entrada y creará una subpágina con la segunda plantilla, y esta subpágina aceptará otra información y creará una sub-subpágina con la tercera plantilla.
El problema es que no puedo activar el evento de clic en la sub-subpágina.
En la segunda plantilla para la subpágina, tengo el código a continuación usando $.ajax post y puedo entregar información y usar la información publicada para crear la sub-subpágina usando la tercera plantilla y su ruta.
El código en la segunda plantilla.
window.onload = init; function init(){ var button1 = document.getElementById("button"); button1.onclick = create_sub_subpage; }; $(document).ready(function(){ //other statements used $.getJSON to get select list from python Flask }; // code to send data to Flask function create_sub_subpage(){ $.ajax({ url: "create_sub_subpage", type: "post", data: ..., success: function(result){ alert("foo") } }) }Y el código Flask para recibir y crear_sub_subpágina está a continuación:
@app.route('<sub_page>/<page>') def render_third_page(sub_page, page): return render_template("third.html") @app.route('/create_sub_subpage', methods=['GET', 'POST']) def create_sub_subpage(): if request.method == 'POST': posted = request.get_json(force = True) page = posted['page'] sub_page = posted['sub_page'] render_third_page(sub_page, page) return jsonify({'msg':'finish'})El código de las terceras plantillas que no se pudo activar es el siguiente:
window.onload = init; function init(){ ... // no $.ajax }; $(document).ready(function(){ alert("ready"); // not executed var a = document.getElementById("test"); a.onclick(function(){ alert("clicked"); }); });La primera plantilla usó básicamente la misma lógica para crear la subpágina, pero la segunda plantilla funciona bien.
Intercambié la segunda y la tercera plantilla, y la alerta y el clic funcionan bien, así que me preguntaba si el problema se debió a la estructura de la segunda plantilla. ¿Tiene algo que ver con $.ajax? ¿Por qué document.ready no funciona en mi tercera plantilla?
Perdóneme si usé palabras poco profesionales porque todavía no estoy capacitado profesionalmente.
Muchas gracias por tus consejos y soluciones!!!