重新影响div正在使jquery表现得很奇怪

时间:2012-02-15 21:46:25

标签: php javascript jquery html

当我在javascript中编码时,我意识到了一些奇怪的东西,特别是对于一些jquery函数。

这是我的代码

<?php // Encoded in UTF-8
    if(isset($_SESSION['username']))
    {
?>

<script type="text/javascript">
    function showEvent(nid)
    {
        $j=jQuery.noConflict();
        $j.get("getGestionEvent.php?type=show&nid="+nid, function(data){
            document.getElementById("eventdiv").innerHTML = data;
        });
    }
</script>

<h2> Event </h2>
<fieldset>
<legend> Add </legend>
<div style="margin-top:10px;">
    <label for="date"> Date : </label>
    <span style="margin-left:20px;">
        <button id="ButtonCreationDemoButton">
            <img src="img/calendar.png" alt="[calendar icon]"/>
        </button>
    </span>
</div>
<form name="events" action="index.php?p=event" method="post">
<div style="margin-top:5px;">
    <span style="margin-left:-1px;">
        <input type="text" name="ButtonCreationDemoInput" id="ButtonCreationDemoInput"/>
    </span>
</div>
<div style="margin-top:10px;">
    <label for="date"> Description : </label>
</div>
<div style="margin-top:5px;">
    <span style="margin-left:-1px;">
        <input type="text" name="desc" id="desc" maxlength="100">
    </span>
</div>
<div style="margin-top:5px;">
    <input type="submit" value="Ajouter">
<div>
</fieldset>
</form>
<div id="eventdiv"></div>
<script type="text/javascript">
    // If I don't call the function, the other script doesn't make an error
    showEvent(0);
</script>

<script>
    $('#ButtonCreationDemoButton').click(
      function(e) {
        $('#ButtonCreationDemoInput').AnyTime_noPicker().AnyTime_picker().focus();
        e.preventDefault();
      } );
</script>
<?php
    }
    else
    {
        echo '<p style="color:red"> You cannot see this page. </p>';
    }
?>

这是一个带有2个文本框的简单表单,但我有一个带有日历图像的按钮,使文本框上方的日历显示为ButtonCreationDemoInput,以便用户轻松选择日期。如果我删除调用函数showEvent()的行,日历显示没有问题。但是如果我让函数出现在那里,我就会收到错误而我看不到日历:

  

未捕获的TypeError:对象[对象DOMWindow]的属性'$'不是函数

它指向一行:$('#ButtonCreationDemoButton')。点击(

顺便说一句,showEvent只给出一个名为eventdiv的div来自数据库的数据表。

这不是我第一次看到这种问题。这只发生在我重新影响div的内容时。

有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:2)

$是jQuery对象的标准变量别名。但是你正在使用jQuery.noConflict();。这会删除$别名。相反,您必须使用jQuery一词,即jQuery('#ButtonCreationDemoButton')

基本上,调用showEvent(),删除$别名,然后尝试在以下script标记中使用它。

但是,在您的代码中,您不只是致电jQuery.noConflict(),而是将其分配给变量$j。这允许您使用$j作为jQuery别名,即$j('ButtonCreation...')