Infinite reload on Ajax Stop function - javascript

I have a long javascript file which I included a auto reload page every ajax success, however I got infinite ajax reload on this
<script>
var latest;
var par;
var widgets;
var test;
var $randomId;
var gridster;
$(document).ready(function() {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
gridster = $(".gridster ul").gridster({
widget_margins: [10, 10],
widget_base_dimensions: [140, 140],
helper: 'clone',
resize: {
enabled: true
},
serialize_params: function($w, wgd) {
return {
id:$($w).attr('id'),
col: wgd.col,
row: wgd.row,
size_x:wgd.size_x,
size_y:wgd.size_y,
};
},
draggable: {
stop: function(event, ui) {
var positions = JSON.stringify(this.serialize());
var data_id = $(ui.$helper[0]).attr('id');
var size_x = $(ui.$helper[0]).attr('data-sizex');
var size_y = $(ui.$helper[0]).attr('data-sizey');
var data_row = $(ui.$helper[0]).attr('data-row');
var data_col = $(ui.$helper[0]).attr('data-col');
$.ajax({
url: "/partA-save-widgets-positions",
type: "POST",
data: {
'size_y': size_y,
'size_x': size_x,
'data_row': data_row,
'data_col': data_col,
'id' : data_id
},
dataType: "json",
error: function(log) {
console.log(log);
},
success: function(log) {
//console.log(log);
}
})
}
}
}).data('gridster');
$.getJSON('/partA-widgets-current-positions', function(data) {
if (data !=null) {
var id_name;
id_name = 'widgets';
id_name = id_name + data.id;
$.each(JSON.parse(data.positions), function(i, value) {
console.log(value);
$(id_name).attr({
'data-col': value.col,
'data-row': value.row,
'data-sizex': value.size_x,
'data-sizey': value.size_y
});
});
} else {
console.log("no data returned");
}
})
function Generator(){};
Generator.prototype.rand = Math.floor(Math.random() * 26) + Date.now();
Generator.prototype.getId = function() {
return this.rand++;
};
widgetTemplate = function($widgetTitle,$widgetContent){
idGen = new Generator();
$randomId = idGen.getId();
var html = $widgetContent;
return html;
},
addWidget = function($widgetType){
var mapAPI='<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d253304.652017724!2d125.31098975138514!3d7.25390594287568!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x32f96d9f519e327f%3A0xb53a24589f79c573!2sDavao+City%2C+Davao+del+Sur!5e0!3m2!1sen!2sph!4v1467344380693" width="200" height="150" frameborder="0" style="border:0" allowfullscreen></iframe>';
var costApi = 'https://api.del.icio.us/v1/';
widgets = {
'map': widgetTemplate('MAP',mapAPI),
'cost': widgetTemplate('COST','COST CONTENT'),
'revenue': widgetTemplate('REVENUE','REVENUE CONTENT'),
'traffic': widgetTemplate('TRAFFIC','TRAFFIC CONTENT'),
'admin': widgetTemplate('ADMIN','ADMIN CONTENT'),
'feedback': widgetTemplate('FEEDBACK','FEEDBACK CONTENT'),
'default': 'Error/Invalid Input'
};
}
$("ul.dropdown-menu li").click(function() {
par = $.trim($(this).find("span.widgets").text());
//var data_id = $(".random").closest('div.portlet').attr('data-id');
var style = $('.ui-resizable').attr('style');
idGen = new Generator();
var $randomId2 = idGen.getId();
console.log($randomId2);
switch(par) {
case "MAP": {
test = widgets.map;
break;
}
case "COST": {
test = widgets.cost;
break;
}
case "REVENUE": {
test = widgets.revenue;
break;
}
case "TRAFFIC": {
test = widgets.traffic;
break;
}
case "ADMIN": {
test = widget.admin;
break;
}
case "FEEDBACK": {
test = widget.feedback;
break;
}
default: {
console.log(par);
}
}
$.ajax({
url: '/partA-save',
type: "POST",
data: {
'test': test,
'widget': par,
'random_id': $randomId2,
'style': style
},
dataType: 'JSON',
}).success(function(data) {
console.log(data);
});
console.log(par);
console.log(test);
console.log($randomId2);
//return true;
});
//delete
$(".remove").click(function() {
var id = $(this).closest('div.portlet').attr('data-id');
$.ajax({
url: '/partA-delete',
type: "post",
data: {
'id': id
},
dataType: "JSON",
//async: false,
success: function(data) {
if (data.status == 200) {
setTimeout(function(){
location.reload();
},5000);
}
},
error: function(data) {
console.log(data);
}
});
});
//auto reload page if success
$(document).ajaxStop(function() {
window.location.reload();
});
});
</script>

This may be your infinite loop.
$.getJSON:call // async
$(document).ajaxStop(fn) // bind event
$.getJSON:success // ajaxStop:event
You could try putting the $(document).ajaxStop(fn) binding inside of the $.getJSON callback

Related

How to call vue method from a javascript function?

I am trying to call a vue method from javascript function but can't make it work. The method I am trying to call is app.onChangePlant(val) It turns out that the value is not called.
Is it because of the vue is not yet available when I declared the javascript function?
This is the error I am receiving
plant-consumer:222 Uncaught TypeError: app.onChangePlant is not a function
at onChangePlantSelect (plant-consumer:222)
at HTMLSelectElement.onchange (plant-consumer:399)
at Object.trigger (app.js:14973)
at HTMLSelectElement.<anonymous> (app.js:15045)
at Function.each (app.js:6863)
at jQuery.fn.init.ea
Code:
<script type="module" defer>
const setting = {
url: {
findUsage: "{{ route('admin.plant-consumer.find-usage') }}",
usageCsvDownload: "{{ route('admin.plant-consumer.usage-csv-download') }}",
},
date: {
date_default: moment("{{ $defaultDate }}", 'YYYY/MM/DD').toDate()
}
};
const app = new Vue({
el: '#app',
data: {
url: setting.url,
plantId: '',
isLoading: false,
rangeFilter: 'daily',
byMonth: false,
csvDownloadUrl: '',
date: setting.date.date_default,
month: setting.date.date_default,
// datepicker用設定
DatePickerFormat: 'yyyy/MM/dd',
MonthPickerFormat: 'yyyy/MM',
disabledDates: {
from: new Date()
},
ja_vdp: vdp_translation_ja.js
},
components: {
'vuejs-datepicker': vuejsDatepicker
},
watch: {
rangeFilter: function () {
this.byMonth = this.rangeFilter === 'monthly';
this.getData(1);
},
},
methods: {
onChangePlant: function(event) {
this.plantId = event.target.value;
this.getData(1);
},
onChangeDate: function () {
this.getData(1);
},
onChangeMonth: function () {
this.getData(1);
},
getData: function(page) {
let that = this;
let date = that.date;
that.isLoading = true;
that.csvDownloadUrl = '';
if (that.byMonth) {
date = that.month;
}
if(that.plantId && ((date)))
{
let data = {
plant : that.plantId,
date : that.formatDateForRequest(date),
byMonth: that.byMonth,
page : page,
};
let url = that.url.usageCsvDownload
+ '?plant=' + data.plant
+ '&date=' + data.date
+ '&byMonth=' + data.byMonth;
// console.log(url);
$.ajax(
{
url: that.url.findUsage,
type: "get",
datatype: "html",
data: data,
cache: false
}).done(function(data){
$("#consumer_table_generate").empty().html(data);
that.csvDownloadUrl = url;
}).fail(function(jqXHR, ajaxOptions, thrownError){
alert('No response from server');
}).always(function() {
that.isLoading = false;
});
}
else
{
$("#consumer_ratio_body").empty();
that.isLoading = false;
}
}
},
mounted: function () {
let vueObj = this;
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$(document).on('click', '.pagination a', function(event)
{
event.preventDefault();
let $this = $(this);
$('#consumer_table_generate li').removeClass('active');
$this.parent('li').addClass('active');
var page = $this.attr('href').split('page=')[1];
vueObj.getData(page);
});
}
});
$(document).ready(function () {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
});
</script>
<script>
function onChangePlantSelect(val) {
console.log(val);
app.onChangePlant(val);
};
</script>
const App = {
data: {
url: setting.url,
plantId: '',
isLoading: false,
rangeFilter: 'daily',
byMonth: false,
csvDownloadUrl: '',
date: setting.date.date_default,
month: setting.date.date_default,
// datepicker用設定
DatePickerFormat: 'yyyy/MM/dd',
MonthPickerFormat: 'yyyy/MM',
disabledDates: {
from: new Date()
},
ja_vdp: vdp_translation_ja.js
},
components: {
'vuejs-datepicker': vuejsDatepicker
},
watch: {
rangeFilter: function () {
this.byMonth = this.rangeFilter === 'monthly';
this.getData(1);
},
},
methods: {
onChangePlant: function(event) {
this.plantId = event.target.value;
this.getData(1);
},
onChangeDate: function () {
this.getData(1);
},
onChangeMonth: function () {
this.getData(1);
},
getData: function(page) {
let that = this;
let date = that.date;
that.isLoading = true;
that.csvDownloadUrl = '';
if (that.byMonth) {
date = that.month;
}
if(that.plantId && ((date)))
{
let data = {
plant : that.plantId,
date : that.formatDateForRequest(date),
byMonth: that.byMonth,
page : page,
};
let url = that.url.usageCsvDownload
+ '?plant=' + data.plant
+ '&date=' + data.date
+ '&byMonth=' + data.byMonth;
// console.log(url);
$.ajax(
{
url: that.url.findUsage,
type: "get",
datatype: "html",
data: data,
cache: false
}).done(function(data){
$("#consumer_table_generate").empty().html(data);
that.csvDownloadUrl = url;
}).fail(function(jqXHR, ajaxOptions, thrownError){
alert('No response from server');
}).always(function() {
that.isLoading = false;
});
}
else
{
$("#consumer_ratio_body").empty();
that.isLoading = false;
}
}
},
mounted: function () {
let vueObj = this;
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$(document).on('click', '.pagination a', function(event)
{
event.preventDefault();
let $this = $(this);
$('#consumer_table_generate li').removeClass('active');
$this.parent('li').addClass('active');
var page = $this.attr('href').split('page=')[1];
vueObj.getData(page);
});
}
}
const app = Vue.createApp(App)
const vm = app.mount('#blog-posts-demo')
vm.remove(123456)
//this way you guarantee the app is properly mounted, by the time you call
I don't know why would you like to do that but if it's neccessary you can try to use window eventlisteners:
https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events
In your component you can add an eventlistener that call your method, in js script tage you can fire an event, if your component ready it will call the method.
I never did this before it's just a theory :)
edit: I tried it, but your component is not mounted when you want to fire the event in script tag

popup close event detect javascript

I want to know hot to detect popup close event, When i open popup close event automatically call, its i am using .close event.
function start() {
$.ajax({
type: "post",
dataType: "html",
url: 'client_get',
crossDomain: true,
data: {
'id': '123'
},
success: function(response) {
try {
var json = JSON.parse(response);
} catch (err) {
start();
}
jQuery(document).ready(function($) {
var close_interval = setInterval(function() {
var newwindow = window.open('https://www.example.com/key?v=' + json[0]['url'], 'key', 'width=800,height=600,status=0,toolbar=0');
if (newwindow.close) {
console.log("Closed");
clearInterval(close_interval);
}
}, 1000);
});
}
});
}
Capturing the close event of a window requires the onbeforeunload event handler:
var new_window = window.open('some url')
new_window.onbeforeunload = function(){ my code}
so in your case:
function start() {
$.ajax({
type: "post",
dataType: "html",
url: 'client_get',
crossDomain: true,
data: {
'id': '123'
},
success: function (response) {
try {
var json = JSON.parse(response);
} catch (err) {
start();
}
jQuery(document).ready(function ($) {
var close_interval = setInterval(function () {
var newwindow = window.open('https://www.example.com/key?v=' + json[0]['url'], 'key', 'width=800,height=600,status=0,toolbar=0');
newwindow.onload = function() {
newwindow.onbeforeunload = function() {
console.log("Closed");
clearInterval(close_interval);
}
}
}, 1000);
});
}
});
}

How to add a file jquery on view razor?

I have this view and this works fine
as you see I have added a section (required:false) on _layout
and until now there is not problem,
#model final2.Models.ObjetosUnidos.HelperVenta
#{
ViewBag.Title = "Index";
}
#*
<>
*#
#section JavaScript
{
<script type="text/javascript">
$(document).ready(
function () {
var $loading = $('#cargando').hide();
$(document)
.ajaxStart(function () {
$loading.show();
})
.ajaxStop(function () {
$loading.hide();
})
$("#btnselectcliente").click(
function () {
$("#diviniciarventa").hide();
$.when(
$.ajax({
type: "post",
dataType: "html",
url: '#Url.Action("mostrarcuerpo", "venta")',
data: { idcliente: $("#selectcliente").val() }
})
).then(
function (data) {
$("#divcuerpo").html(data);
}, function (error) { alert(error.responseText); }
);
}
);
$(this).on("click", "#btnbuscar", function (e) {
/// Do some stuff ...
var idventa1 = $("#idventa").val();
$.ajax({
type: "post",
dataType: "html",
url: '#Url.Action("buscarproducto", "venta")',
data: { texto: $("#txtbuscar").val(), idventa: idventa1 },
success: function (data) {
$("#divtableproductos").html(data);
},
error: function (error) { alert(error.error); }
});
});
var productoid = 0;
var cantidad = 0.0;
var precio = 0.0;
var iva = 0.0;
var nombre = "";
var codigo = "";
var ventaid = "";
var cantidadelegida = 0.0;
$(this).on(
{
click: function () {
productoid = parseInt(this.cells["productoid"].textContent);
cantidad = parseFloat(this.cells["cantidad"].textContent);
precio = parseFloat(this.cells["precio"].textContent);
iva = parseFloat(this.cells["iva"].textContent);
nombre = (this.cells["nombre"].textContent);
codigo = (this.cells["codigo"].textContent);
ventaid = $("#idventa").val();
$("#txtnombre").val(nombre);
$("#txtcodigo").val(codigo);
}
}, "#tableproductos tbody tr");
var colordefault = "";
$(this).on({
mouseenter: function () {
//stuff to do on mouse enter
colordefault = $(this).css("background-color");
$(this).css("background-color", "#ff0");
},
mouseleave: function () {
$(this).css("background-color", colordefault);
}
}, "#tableproductos tbody tr");
$(this).on(
{
click: function () {
cantidadelegida = $("#txtcantidad").val();
if (cantidadelegida < 0 || cantidadelegida > cantidad) {
alert("Cantidad debe estar entre 0 y " + cantidad);
return;
}
texto = $("#txtbuscar").val();
actualizaprodydetalle(productoid, cantidadelegida, ventaid, texto);
}
}, "#btnagregar");
function actualizaprodydetalle(_productoid, _cantidadelegida, _ventaid, _texto) {
$.when(
$.ajax({
async: false,
type: "post",
dataType: "html",
url: '#Url.Action("muestradetalle", "venta")',
data: { productoid: _productoid, cantidad: _cantidadelegida, ventaid: _ventaid }
}),
$.ajax({
async: false,
type: "post",
dataType: "html",
url: '#Url.Action("buscarproducto", "venta")',
data: { texto: _texto, idventa: ventaid }
})
).then(
function (data1, data2) {
$("#divdetalle").html(data1);
$("#divtableproductos").html(data2);
}
);
}
iddetalle = 0;
$(this).on(
{
mouseover: function () {
iddetalle = parseInt(this.cells["iddetalle"].textContent);
}
}, "#tbldetalle tbody tr");
$(this).on(
{
click: function () {
texto = $("#txtbuscar").val();
try {
$.ajax({
type: "post",
dataType: "html",
url: '#Url.Action("actualizadetalle", "venta")',
data: {
iddetalle: iddetalle,
texto: texto
},
success: function (data) {
$("#divmodal").html(data);
},
error: function (dat) {
alert(dat.responseText);
alert(dat.statusText);
}
});
}
catch (ex) {
alert(ex.message);
}
}
}, "#btnmodificar");
$(this).on(
{
click: function () {
var productoid5 = $("#adproductoid").val();
var ventaid5 = $("#idventa").val();
var texto5 = $("#adtexto").val();
if (parseFloat($("#txtnuevacantidad").val()) < 0 || parseFloat($("#txtnuevacantidad").val()) > (parseFloat($("#addisponible").val()) + parseFloat($("#adcantidadactual").val()))) {
alert("Cantidad debe estar entre 0 y " + (parseFloat($("#addisponible").val()) + parseFloat($("#adcantidadactual").val())));
return;
}
var cantidad5 = parseFloat($("#txtnuevacantidad").val()) - parseFloat($("#adcantidadactual").val());
actualizaprodydetalle(productoid5, cantidad5, ventaid5, texto5);
$('#divmodal').html("");
}
}, "#btnnuevacantidad");
$(this).on(
{
click: function () {
var ventaid5 = $("#idventa").val();
try {
$.ajax({
type: "post",
dataType: "html",
url: '#Url.Action("finalizarventa", "venta")',
data: {
ventaid: ventaid5
},
success: function (data) {
$("#divmodal").html(data);
},
error: function (dat) {
alert(dat.responseText);
alert(dat.statusText);
}
});
}
catch (ex) {
alert(ex.message);
}
}
}, "#btnfinalizarvta");
cambiofinal = 0;
$(this).on(
{
keypress: function (e) {
try {
if (e.which == 13) {//Enter key pressed
total = parseFloat($(this).val());
total = total.toFixed(2);
cobrar = parseFloat($("#fvprecio").val());
cobrar = cobrar.toFixed(2);
cambio = (total - cobrar);
cambio = cambio.toFixed(2);
cambiofinal = cambio;
$("#txtcambio").val(cambio);
}
}
catch (ex) {
alert("Solo números flotantos por favór " + ex.message);
return false;
}
}
}, "#txtentrega");
$(this).on(
{
click: function (e) {
$('#divmodal').html("");
}
}, "#fvcerrar");
$(this).on(
{
click: function (e) {
if (cambiofinal < 0) {
alert("Dinero Insuficiente");
return;
}
$('#divmodal').html("");
var ventaid5 = $("#idventa").val();
//ventafinalizada
$.ajax(
{
type: "post",
dataType: "text",
url: '#Url.Action("ventafinalizada", "venta")',
data: { ventaid: ventaid5 },
async: false,
success: function (response) {
alert(response);
window.close();
},
error: function (data) { alert("Ocurrio un errorxx"); }
}
);
}
}, "#fvfinalizarventa");
//$("#buscar").keypress(function (e) {
// if (e.which == 13) {//Enter key pressed
// //$("#btnaceptar").click();//Trigger search button click event
// alert("buscar enter")
// buscar();
// }
//});
});
</script>
}
<div id="cargando">
<img src="~/Images/cargandoajax.gif" />
</div> ...
I know to add the Javascript code in a file is a good practic,
then I copy
$(document).ready(
function () {...}
in a file but it does not work
#section JavaScript
{
<script type="text/javascript" src="~/Scripts/scriptventa.js"></script>
}
what am i doing wrong?
I tried doing it too
<script type="text/javascript" src="~/Scripts/scriptventa.js"></script> (not using #section) but it does not work
this is happening when the javascript code is on a file, I believe its caused by this line
url: '#Url.Action("mostrarcuerpo", "venta")',

How to solve Uncaught TypeError: Cannot read property 'length' of null

I have installed a wp plugin , When I use default wp theme , it works fine but when I use another theme it does not loads one of the tabs , by inspect element I get this
Uncaught TypeError: Cannot read property 'length' of null
The code on the page it is mentioning is this
function show_submissions(page,search)
{
if (typeof page=='string')
{
var data = 'action=formcraft_page&page='+page;
}
else
{
var data = 'action=formcraft_page&search='+search;
var page = 0;
}
jQuery('#subs tbody').html('<tr><td colspan="6"><center><div style="margin: 30px auto; width: 30px;font-size: 14px; color: #888">loading...</div></center></td></tr>')
jQuery.ajax({
url: ajaxurl,
type: "POST",
dataType: "json",
data: data,
success: function (response) {
jQuery('.fc_pagination .active').removeClass('active');
jQuery('.fc_pagination .page:nth-child('+page+')').addClass('active');
if (response.length==0)
{
jQuery('#subs tbody').html('<center style="margin: 20px; font-size: 14px">No Results</center>');
return false;
}
for (var sub in response)
{
var read = response[sub]['seen'] == '' || response[sub]['seen'] == null ? 'Unread' : 'Read';
var shade = response[sub]['seen'] == '' || response[sub]['seen'] == null ? 'row_shade' : '';
var id = response[sub]['id'];
var name = response[sub]['name'] ? response[sub]['name'] : 'deleted';
var row = '<tr id="sub_'+id+'" class="'+shade+'">';
var row = row + '<td>'+id+'</td>';
var row = row + '<td id="rd_'+id+'">'+read+'</td>';
var row = row + '<td id="rd_'+id+'">'+response[sub]['added']+'</td>';
var row = row + '<td>'+name+'</td>';
var row = row + '<td><a class="fc-btn show-message" id="upd_'+id+'" data-target="#view_modal" data-toggle="fcmodal">View</a><div class="sub-content" id="sub-content-'+id+'">'+response[sub]['content']+'</div></td>';
var row = row + '<td><i class="formcraft-trash sub_upd" id="del_'+id+'" title="Delete message"></i> <i class="formcraft-bookmark-empty sub_upd" id="read_'+id+'" title="Mark as unread"></i></td>';
var row = row + '</tr>';
var html = html + row;
}
jQuery('#subs tbody').html('');
jQuery('#subs tbody').append(html);
},
error: function (response) {
jQuery('#save_form_btn').html(jQuery('#save_form_btn').attr('data-error'));
window.saving = false;
}
});
}
function drawChart(id, from, to)
{
jQuery('#chart-cover').addClass('loading')
if (id)
{
var jsonData = jQuery.ajax({
url: ajaxurl,
dataType: "json",
type: "POST",
data: 'id='+id+'&action=formcraft_chart&from='+from+'&to='+to,
async: false
}).responseText;
}
else
{
var jsonData = jQuery.ajax({
url: ajaxurl,
dataType: "json",
data: 'action=formcraft_chart&from='+from+'&to='+to,
async: false
}).responseText;
}
var jsonData = jQuery.parseJSON( jsonData );
var totalViews = 0;
for (values in jsonData.views)
{
totalViews = totalViews + parseInt(jsonData.views[values][1]);
}
var totalSubmissions = 0;
for (values in jsonData.submissions)
{
totalSubmissions = totalSubmissions + parseInt(jsonData.submissions[values][1]);
}
jQuery({someValue: parseInt(jQuery('#tvs').text())}).animate({someValue: totalViews}, {
duration: 900,
easing:'swing',
step: function() {
jQuery('#tvs').text(Math.ceil(this.someValue));
}
});
jQuery({someValue: parseInt(jQuery('#tss').text())}).animate({someValue: totalSubmissions}, {
duration: 900,
easing:'swing',
step: function() {
jQuery('#tss').text(Math.ceil(this.someValue));
}
});
jQuery({someValue: parseInt(jQuery('#tcs').text())}).animate({someValue: (Math.round((totalSubmissions/totalViews)*10000)/100)}, {
duration: 900,
easing:'swing',
step: function() {
jQuery('#tcs').text(Math.ceil(this.someValue)+'%');
}
});
setTimeout(function(){
jQuery('#tvs').text(totalViews);
jQuery('#tss').text(totalSubmissions);
jQuery('#tcs').text((Math.round((totalSubmissions/totalViews)*10000)/100)+'%');
}, 1000);
var plot = jQuery.plot("#chart-inner", [{
data: jsonData.views,
label: 'views',
color: 'rgb(255, 175, 80)',
bars: {show:true, align: 'center'}
},{
data: jsonData.submissions,
label: 'submissions',
color: 'rgb(28, 160, 28)',
lines: {show:true}
}], {
series: {
points: { show:true }
},
grid: {
hoverable: true,
clickable: true
},
xaxis: {
mode: "categories"
}
});
jQuery('#chart-cover').removeClass('loading')
jQuery("#chart-inner").bind("plothover", function (event, pos, item) {
if (item) {
if (previousPoint != item.dataIndex) {
previousPoint = item.dataIndex;
jQuery("#tooltip").remove();
var x = Object.keys(item.series.xaxis.categories)[item.datapoint[0]],
y = item.datapoint[1];
showTooltip(item.pageX, item.pageY,
y + ' ' + item.series.label + " on " + x);
}
} else {
jQuery("#tooltip").remove();
previousPoint = null;
}
});
jQuery("#chart-inner").bind("plotclick", function (event, pos, item) {
if (item) {
jQuery("#clickdata").text(" - click point " + item.dataIndex + " in " + item.series.label);
plot.highlight(item.series, item.datapoint);
}
});
}
function setupLabel()
{
if (jQuery('.label_check input').length) {
jQuery('.label_check').each(function(){
jQuery(this).removeClass('c_on');
});
jQuery('.label_check input:checked').each(function(){
jQuery(this).parent('label').addClass('c_on');
});
};
if (jQuery('.label_radio input').length) {
jQuery('.label_radio').each(function(){
jQuery(this).removeClass('r_on');
});
jQuery('.label_radio input:checked').each(function(){
jQuery(this).parent('label').addClass('r_on');
});
};
};
jQuery(function () {
jQuery('#import').fileupload({
dataType: 'json',
add: function (e, data)
{
var type = data.files[0].name;
var type = type.split('.');
var type = type[1];
if (type!='txt')
{
alert('Only .txt files');
return false;
}
data.submit();
jQuery('#fu-label').text('wait');
jQuery('#import').prop("disabled",true);
},
done: function (e, resp) {
if(resp.result.failed)
{
jQuery('#import').prop("disabled",false);
jQuery('#fu-label').text(resp.failed);
}
else
{
jQuery('#import_form').val(resp.result.files.new_name);
jQuery('#import').prop("disabled",true);
jQuery('#fu-label').html('<i class="formcraft-ok" style="font-size: 10px"></i> Done');
jQuery('#rand_b').trigger('click');
setupLabel();
jQuery('#import').parent().addClass('green');
}
},
fail: function (e, data){
jQuery('.import').prop("disabled",false);
jQuery('#import_field_label').text('Failed');
jQuery('#fu-label').text('Rety');
}
});
});
jQuery(document).ready(function () {
setTimeout(function(){
jQuery('#fc-page-1').trigger('click');
}, 1000);
/* Update Submissions */
jQuery('body').on('click','.sub_upd, .show-message',function(){
var id = jQuery(this).attr('id').split('_');
var id2 = jQuery(this).attr('id');
jQuery('#view_modal .modal-body').html(jQuery('#sub-content-'+id[1]).html());
if (id[0]=='upd')
{
jQuery('#view_modal .modal-body').html(jQuery('#upd_text_'+id[1]).html());
jQuery('#view_modal .myModalLabel').html(jQuery('#upd_name_'+id[1]).html());
jQuery('#rd_'+id[1]).html('Read');
jQuery(this).parent().parent().addClass('row_shade');
jQuery.ajax({
url: ajaxurl,
type: "POST",
data: 'action=formcraft_sub_upd&type=upd&id='+id[1],
success: function (response) {
jQuery('#'+id2).parent().parent().removeClass('row_shade');
},
error: function (response) {
}
});
}
else if (id[0]=='del')
{
jQuery.ajax({
url: ajaxurl,
type: "POST",
data: 'action=formcraft_sub_upd&type=del&id='+id[1],
success: function (response) {
if (response=='D')
{
jQuery('#'+id2).removeClass('formcraft-trash');
jQuery('#'+id2).addClass('formcraft-ok').css('color','green');
}
},
error: function (response) {
}
});
}
else if (id[0]=='read')
{
jQuery.ajax({
url: ajaxurl,
type: "POST",
data: 'action=formcraft_sub_upd&type=read&id='+id[1],
success: function (response) {
if (response=='D')
{
jQuery('#rd_'+id[1]).html('Unread');
jQuery('#'+id2).parent().parent().addClass('row_shade');
}
},
error: function (response) {
}
});
}
});
// Set up DataTable
if (jQuery('#subs').length)
{
jQuery('#ext').dataTable({
"sPaginationType": "full_numbers"
});
jQuery('#files_manager_table').dataTable({
"sPaginationType": "full_numbers"
});
}
jQuery('#new_form').submit(function(event){
event.preventDefault();
var data = 'action=formcraft_add&import_form='+jQuery('#import_form').val()+'&name='+jQuery('#new_name').val()+'&desc='+jQuery('#new_desc').val()+'&type_form='+jQuery('[name="type_form"]:checked').val()+'&duplicate='+jQuery('[name="duplicate"]').val();
jQuery('.response_ajax').html('processing ...');
jQuery.ajax({
url: ajaxurl,
type: "POST",
dataType: 'json',
data: data,
success: function (response) {
if (response.Added)
{
jQuery('.response_ajax').html('Added');
window.location.href = 'admin.php?page=formcraft_admin&id='+response.Added;
}
else if (response.Error)
{
jQuery('.response_ajax').html(response.Error);
}
},
error: function (response) {
jQuery('.response_ajax').html(response);
}
});
});
jQuery('#subs_search').submit(function(event){
event.preventDefault();
show_submissions(false,jQuery('#search_query').val());
});
drawChart();
jQuery('.datepicker-field').datepicker().on('changeDate', function(ev){
jQuery(this).datepicker('hide');
jQuery(this).trigger('change');
});
jQuery('.datepicker-field').wrap("<div class='datepicker-cover'></div>");
jQuery('body').on('click', '.datepicker-cover', function(){
jQuery(this).find('input').focus();
});
jQuery('body').on('click','.nav-main li', function(event)
{
event.preventDefault();
var index = jQuery(this).parent().index();
jQuery('.tab-content .tab-pane').removeClass('active');
jQuery('.tab-content .tab-pane:eq('+index+')').addClass('active');
jQuery('.nav-main table td li').removeClass('active');
jQuery('.nav-main table td:eq('+index+') li').addClass('active');
});
jQuery("input.rand2").focus(function(){
event.stopPropagation();
});
jQuery('#rand_a').change(function(){
jQuery('#rand_aa').trigger('click');
setupLabel();
});
jQuery('body').on('submit','#fc-pk',function(event){
event.preventDefault();
jQuery('#fc-pk .response').text('...');
jQuery.ajax({
type: "GET",
url: ajaxurl,
data: 'key='+jQuery('#fc-pk-input').val()+'&action=formcraft_verifyLicense',
dataType: "json",
success: function(response)
{
if (response.message)
{
jQuery('#fc-pk .response').text(response.message);
}
else
{
jQuery('#fc-pk .response').text('Unknown error');
}
},
});
});
jQuery('body').on('click','.delete_from_manager',function(){
jQuery(this).html(jQuery(this).attr('data-loading'));
if (jQuery(this).attr('data-name')){var data = 'name='+encodeURIComponent(jQuery(this).attr('data-name'));}
else if (jQuery(this).attr('data-key')){var data = 'key='+encodeURIComponent(jQuery(this).attr('data-key'));}
var id_this = this.id;
jQuery.ajax({
url: ajaxurl,
type: "POST",
data: 'action=formcraft_delete_file&'+data,
success: function (response) {
if (response=='Deleted')
{
jQuery('#'+id_this).removeClass('btn-danger');
jQuery('#'+id_this).addClass('btn-success');
jQuery('#'+id_this).html(jQuery('#'+id_this).attr('data-complete'));
}
},
error: function (response) {
}
});
});
jQuery('#export').click(function(){
window.open(Url.exporturl,'_blank');
});
jQuery('body').on('click', '.delete-row', function() {
if (confirm('Are you sure you want to delete the form? You can\'t undo this action.')) {
if(jQuery(this).hasClass('btn-danger'))
{
var this_id = jQuery(this).attr('id');
jQuery(this).html(jQuery(this).attr('data-loading'));
var id = jQuery(this).parent('td').parent('tr').attr('id');
jQuery.ajax({
url: ajaxurl,
type: "POST",
data: 'action=formcraft_del&id='+id,
success: function (response) {
if (response=='Deleted')
{
jQuery('#'+this_id).html(jQuery('#'+this_id).attr('data-complete'));
jQuery('#'+this_id).removeClass('btn-danger');
jQuery('#'+this_id).addClass('btn-success');
}
else
{
jQuery('#'+this_id).html(jQuery('#'+this_id).attr('data-reset'));
}
},
error: function (response) {
alert("There was an error.");
}
});
}
}
});
jQuery('body').on('click', '.row_click', function() {
var id = jQuery(this).parent('tr').attr('id');
window.location.href = 'admin.php?page=formcraft_admin&id='+id;
});
// Edit Form Name and Description
jQuery("body").on('click', '.edit_btn', function(event){
event.stopPropagation();
jQuery(this).hide();
jQuery(this).parent().children('.rand').hide();
var name = jQuery(this).prev('a').html();
jQuery(this).prev('input.rand2').show();
jQuery(this).prev('input.rand2').focus();
jQuery(this).next('a.save_btn').show();
});
jQuery('body').on('click','.rand2',function(event){
event.stopPropagation();
});
jQuery("body").on('click', '.save_btn', function(event){
event.stopPropagation();
jQuery(this).hide();
var this_id = jQuery(this).attr('id');
var id = jQuery(this).attr('id').split('_');
var val = jQuery(this).parents().children('.rand2').val();
jQuery.ajax({
url: ajaxurl,
type: "POST",
data: 'action=formcraft_name_update&name='+val+'&id='+id[1],
success: function (response)
{
if (response=='D')
{
jQuery('#'+this_id).parent().children('.rand').text(val);
jQuery('#'+this_id).parent().children('input.rand2').hide();
jQuery('#'+this_id).parent().children('.rand').show();
jQuery('#'+this_id).parent().children('.edit_btn').show();
}
else
{
jQuery('#'+this_id).show();
jQuery('#'+this_id).parent().children('input.rand2').hide();
jQuery('#'+this_id).parent().children('.rand').show();
jQuery('#'+this_id).parent().children('.edit_btn').show();
}
},
error: function (response)
{
jQuery('#'+this_id).show();
}
});
});
jQuery('#stats_select, #chart-from, #chart-to').change(function(){
var id = jQuery('#stats_select').val();
var from = jQuery('#chart-from').val();
var to = jQuery('#chart-to').val();
drawChart(id, from, to);
});
jQuery('#chart-to').datepicker('remove');
jQuery('#chart-to').datepicker({'endDate': new Date()});
jQuery('#chart-from').change(function(){
var sd = jQuery(this).val().split('/');
sd = new Date( parseInt(sd[0]), parseInt(sd[1])-1, parseInt(sd[2]) );
jQuery('#chart-to').datepicker('remove');
jQuery('#chart-to').datepicker({'startDate': sd}).on('changeDate', function(ev){
jQuery(this).datepicker('hide');
jQuery(this).trigger('change');
});
});
jQuery('#export_select').change(function(){
var val = jQuery(this).val();
if (val=='0')
{
var href = jQuery('#export_url').attr('href');
var href = href.replace('?id='+href.substring(href.indexOf('?id=')+4, href.length),'?id=0');
}
else
{
var href = jQuery('#export_url').attr('href');
var href = href.replace('?id='+href.substring(href.indexOf('?id=')+4, href.length),'?id='+val);
}
jQuery('#export_url').attr('href',href);
});
setupLabel();
jQuery('body').addClass('has-js');
jQuery('body').on("click",'.label_check, .label_radio' , function(){
setupLabel();
});
jQuery('body').on('click', '.show-message', function(){
var html = jQuery(this).parent().find('.sub-content').html();
jQuery('#print_area').html(html);
});
jQuery('body').on('click','.fc_pagination > .page',function(){
show_submissions(jQuery(this).text(),false);
});
});
Here is a screenshot on both theme from inspect element and working/non working page
http://i.stack.imgur.com/6TkWs.png

jQuery function not work for Second Time

I write this jQuery after it works fine completely for first time it give this error then for second time none of function work.I also use jQuery UI you can see in code.
This error happens after first time complete:
Uncaught SyntaxError: Unexpected token } jquery-1.8.3.js:564
Markup and code:
<link href="../../StyleSheets/jquery-ui-1.9.2.custom.css" rel="stylesheet">
<script src="../../Scripts/jquery-1.8.3.js"></script>
<script src="../../Scripts/jquery-ui-1.9.2.custom.js"></script>
<script>
$(function () {
$(":checkbox").change(function () {
var $this = $(this);
if ($this.is(":checked")) {
$this.closest("tr").addClass("SlectedtRow");
} else {
$this.closest("tr").removeClass("SlectedtRow");
}
})
var tittle = '';
var url = '';
$("#dialog").dialog({
autoOpen: false,
width: 400,
modal: true,
resizable: false,
buttons: [
{
text: "بلی",
click: function () {
DoAction();
$(this).dialog("close");
}
},
{
text: "خیر",
click: function () {
$(this).dialog("close");
}
}
]
});
// Link to open the dialog
$('#ConfirmRiver , #DeleteRiver').click(function (event) {
var IsSelected = false;
var ModalText = " آیا رودخانه ";
$('#RiverForm input:checked').each(function () {
ModalText += this.value + " - "
IsSelected = true;
});
if (IsSelected) {
document.getElementById('ErrorContent').style.display = "none";
ModalText = ModalText.slice(0, -2);
if (this.id == 'DeleteRiver') {
ModalText += "حذف گردد" + "؟"
tittle = 'حذف رودخانه'
url = '#Url.Action("DeleteRiver", "WaterResourcesManagement")';
}
if (this.id == 'ConfirmRiver') {
ModalText += "تایید نهایی گردد" + "؟"
tittle = 'تایید اصلاح و بازبینی رودخانه '
url = '#Url.Action("ChangeRiverARStatus", "WaterResourcesManagement")';
}
$('#ModalMessgae').text(ModalText);
$("#dialog").dialog("open");
$("#dialog").dialog({ title: tittle });
event.preventDefault();
}
else {
document.getElementById('ErrorContent').innerHTML = " اطلاعات مورد نظر را انتخاب نمایید";
document.getElementById('ErrorContent').style.display = "block";
document.getElementById('ErrorContent').className = "msg-Yellow";
}
})
function DoAction() {
var list = [];
$('#RiverForm input:checked').each(function () {
if( url == '#Url.Action("ChangeRiverARStatus", "WaterResourcesManagement")')
{
var Ar= $('#RiverForm').find("input[value='"+this.id+"']").attr('id');
list.push(Ar);
}
else{
list.push(this.id);}
});
var parameters = {};
parameters = JSON.stringify({ "Id": list, AreaID: #Request.QueryString["AreaID"] });
$.ajax({
url: url,
type: 'POST',
contentType: 'application/json; charset=utf-8',
dataType: "html",
traditional: true,
data: parameters,
success: function (data, textStatus, jqXHR) {
$('#updateAjax').html(data);
},
error: function (data) {
$('#updateAjax').html(data);
}
});
}
});
</script>
I add if (!request.isjax()) in all jquery code and it works

Categories