2017-03-27 7 views
1

jackeryを使用してKnackというプラットフォームで作成された1つのアプリケーションのUIの言語を変更するjsスクリプトを作成しようとしています。問題は、UIのどこかをクリックすると言語が元の言語に戻ってしまうので、Knackが完全に理解できないイベントハンドラを使用しているか、JSスキルが短いためです。これはループに関連しているのだろうかと思っていますか?つまり、ページ内のすべてのイベントに対してループを強制的に再実行するにはどうすればよいですか。Knack上に構築されたアプリケーション用のJqueryでループを作成

ありがとうございます!ここで

は私のスクリプトです:

// Translation script ----> Start 

$(document).on('knack-view-render.any', function() { 
// var time = $(".view_22 kn-rich_text kn-view"); 
// add time to logo section $("#knack-logo").append($("time")); 

$(".field_19 .table-fixed-label span").html("    Tender");     //english default 
$(".field_45 .table-fixed-label span").html("     Language");   //english default 
$(".field_19 .kn-label span").html("Tender");            //english default 
$(".field_45 .kn-label span").html("Language");           //english default 
$(".table-keyword-search a").html("Search");           //english default 
$(".kn-form-reload").html("Reload Form");            //english default 
$(".kn-message.success").html("<div>Form successfully submitted.</div><br />");  //english default 
$(".kn-message.error p").html("<p>Name is required!</p><br />"); 
$(".table-keyword-search input").attr("placeholder", "Search by Keyword");   //english default 
$(".kn-submit input[type=submit]").attr("value", "Submit");       //english default 
$('.kn-add-filter').text('add filter');            //english default 
}); 
$(document).on('knack-view-render.any', function(event, page, data, view, record, scene) { 

$("#view_26 select[id=chlang]").change(function() {           //html document in view_26 with the <select> options 
var selectedValue = $(this).val(); 
if (selectedValue === 'en') { 
$(".field_19 .table-fixed-label span").html("&nbsp;&nbsp;&nbsp; Tender");      //english default 
$(".field_45 .table-fixed-label span").html("&nbsp;&nbsp;&nbsp; Language");      //english default 
$(".field_19 .kn-label span").html("Tender");         //english default 
$(".field_45 .kn-label span").html("Language");        //english default 
$(".table-keyword-search a").html("Search");           //english default 
$(".kn-form-reload").html("Reload Form");            //english default 
$(".kn-message.success").html("<div>Form successfully submitted.</div><br />");  //english default 
$(".kn-message.error strong").html("<div>Name is required!</div><br />"); 

$(".table-keyword-search input").attr("placeholder", "Search by Keyword");   //english default 
$(".kn-submit input[type=submit]").attr("value", "Submit");       //english default 
$('.kn-add-filter').text('add filter');            //english default 
} 
else if (selectedValue === 'fr'){ 
$(".field_19 .table-fixed-label span").html("&nbsp;&nbsp;&nbsp; Appel d\' offre");    //replace field number and field name in desired language 
$(".field_45 .table-fixed-label span").html("&nbsp;&nbsp;&nbsp; Langue");       //replace field number and field name in desired language 
$(".field_19 .kn-label span").html("Appel d' offre");       //replace field number and field name in desired language 
$(".field_45 .kn-label span").html("Idiome");         //replace field number and field name in desired language 
$(".table-keyword-search a").html("Rechercher");          //replace with "Search" name in desired language 
$(".kn-form-reload").html("Recharger Formulaire");         //replace with "Reload Form" name in desired language 
$(".kn-message.success").html("<div>Soumis avec Succès.</div><br />");    //replace with "Form successfully submitted." 


$(".table-keyword-search input").attr("placeholder", "recherche par mots-clés");  //replace with "Search by Keyword" name in desired language 
$(".kn-submit input[type=submit]").attr("value", "Enregistrer");      //replace with "Submit" name in desired language 
$('.kn-add-filter').text('ajouter filtre');           //replace with "add filter" name in desired language 
} 
}); 
}); 

// Translation script <---- End 
+0

だから、イベントを発生させるjqueryコードが必要ですか? – Jorius

+0

はい、それはそれを置くのに良い方法です! –

答えて

0

あなたはこのような何かを行うことができます任意のeventfunctionまたはコードtrigger部分は、ちょうどvar events = 'some event event hover etc ...'

に必要なイベントを追加することを必要とする場合

$(document).ready(function() { 
 

 
    function translateDoc(){ 
 
    $('h1').text('Título'); 
 
    $('input').attr('placeholder', 'Algún texto'); 
 
    $('button').text('Botón'); 
 
    $('select option:selected').text('Selector'); 
 
    } 
 

 
    var events = 'mousemove click change'; 
 

 
    $(document).on(events, '.foo', function(event) { 
 
    // console.log(event.type); // mousemove, click, change, etc... 
 
    translateDoc(); 
 
    }); 
 

 
});
.foo { 
 
    height: 200px; 
 
    text-align: center; 
 
    border: 1px solid black; 
 
    padding: 5px 5px 5px 5px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="foo"> 
 
    <h1>Title</h1> 
 
    <input type="text" placeholder="Some Text" /><br /><br /> 
 
    <button type="button">Button</button><br /><br /> 
 
    <select> 
 
    <option>Select</option> 
 
    <option>Option</option> 
 
    </select> 
 
</div>

+0

ありがとうございますが、あなたのロジックに従うと、スニペットやコード内で動作しているとは思われません。 –

関連する問題