• 1 رای - 1 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
اجرا نشدن کد جاوااسکریپت بعد از لود آن با تابع load در jquery
#1
یه صفحه به اسم wiew.php دارم با محتویات
کد پی‌اچ‌پی:
<!doctype html>
<
html>
    <
head>
        <
title>Line Chart</title>
        <
script src="Chart.js"></script>
        <
script type="text/javascript" src='../systems/jquery/jquery.js'></script>
    </
head>
    <
body>
        <
div style="width:30%">
            <
div>
                <
canvas id="canvas" height="450" width="600"></canvas>
            </
div>
        </
div>
        <
div id='js'>
            
        </
div>
        <
script type="text/javascript">
            $(
'js').load('chart.php#');
        </
script>
    </
body>
</
html
و یه صفحه به اسم chart.php دارم با محتویات زیر
کد پی‌اچ‌پی:
<?php
$meghdar 
100;    
$chart"<script>
    $(document).click(function(){
    var randomScalingFactor = function(){ return Math.round(Math.random()*100)};

    var barChartData = {
        labels : ['January','February','March','April','May','June','July'],
        datasets : [
            {
                fillColor : 'rgba(220,220,220,0.5)',
                strokeColor : 'rgba(220,220,220,0.8)',
                highlightFill: 'rgba(220,220,220,0.75)',
                highlightStroke: 'rgba(220,220,220,1)',
                data : [
$meghdar,$meghdar,$meghdar,$meghdar,$meghdar,$meghdar,$meghdar]
            },
            {
                fillColor : 'rgba(151,187,205,0.5)',
                strokeColor : 'rgba(151,187,205,0.8)',
                highlightFill : 'rgba(151,187,205,0.75)',
                highlightStroke : 'rgba(151,187,205,1)',
                data : [randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor()]
            }
        ]

    }
    window.onload = function(){
        var ctx = document.getElementById('canvas').getContext('2d');
        window.myBar = new Chart(ctx).Bar(barChartData, {
            responsive : true
        });
    }});

    </script>"
;
    echo 
$chart;
?>
چرا وقتی با تابع load در جی کوئری صفحه chart.php رو به داخل div با کلاس js لود میکنم کد اجرا نمیشه (لود میشه اما اجرا نمیشه)Huh
منظورم اینه که کدی که از صفحه chart.php لود میشه چرا اجرا نمیشه
  پاسخ
تشکر شده توسط :
#2
بعید میدونم با این کد چیزی لود بشه، چون در سلکتورهای جی کوئری برای انتخاب آیدی باید از # استفاده کنید.
کد:
<div id='js'>          
</div>
<script type="text/javascript">
    $('#js').load('chart.php');
</script>

صفحه ی chart.php آخرش رو بدین صورت تغییر بدین:
کد:
$(document).ready(function(){
        var ctx = document.getElementById('canvas').getContext('2d');
        window.myBar = new Chart(ctx).Bar(barChartData, {
            responsive : true
        });
});

این کد زیر رو هم در ابتدای کد جاوا اسکریپت، بردارید. نیازی نیست.
کد:
$(document).click(function(){
به یـزدان که گر ما خرد داشتیم
کجـا این سر انجـام بد داشتیم؟
  پاسخ
تشکر شده توسط :
#3
خیلی ممنون مشکل برطرف شد Smile
فقط یه سوال فرق کد زیر
کد پی‌اچ‌پی:
window.onload = function(){
        var 
ctx document.getElementById('canvas').getContext('2d');
        
window.myBar = new Chart(ctx).Bar(barChartData, {
            
responsive true
        

با
کد پی‌اچ‌پی:
$(document).ready(function(){
        var 
ctx document.getElementById('canvas').getContext('2d');
        
window.myBar = new Chart(ctx).Bar(barChartData, {
            
responsive true
        
});
}); 
چی هست هرچی فکر میکنم یه معنی میدن فقط یکی با جاوااسکریپت خالصه یکی دیگش با jquery
چرا در اجرا با هم فرق میکنن؟
  پاسخ
تشکر شده توسط :
#4
خواهش.

ready: وقتی که اشیاء DOM صفحه بارگذاری شدن اتفاق میافته .
onload: وقتی محتویات صفحه (DOM تصاویر و ...) لود شدن.

این اسکریپت که شما با ای جکس در صفحه قرار دادین روی محتویات صفحه wiew.php اجرا میشه. پس وقتی شما از window.onload استفاده میکنید یعنی زمانیکه صفحه wiew.php بارگذاری شد این عمل رو انجام بده. در حالی چون کدهای جاوااسکریپت رو با ای جکس فراخوانی کردید. ممکنه کدها بعد از زمان بارگذاری صفحه لود بشن(ارسال درخواست ای جکس و دریافت محتویات صفحه و قرار گرفتن در محل مورد نظر یکم طول میکشه). در نتیجه چون قبلا این رویداد ایجاد شده، کد شما اجرا نمیشه.
به یـزدان که گر ما خرد داشتیم
کجـا این سر انجـام بد داشتیم؟
  پاسخ
تشکر شده توسط : mortaza
#5
ممنون موفق باشید
  پاسخ
تشکر شده توسط : sara147


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان