JQuery Mobile AJAX Конфликт ссылок - PullRequest
1 голос
/ 22 октября 2011

Я относительно новичок в JQuery / JS, поэтому, если вы могли бы сделать ваши ответы идиотскими, это будет оценено.

Может кто-нибудь подсказать, как я могу редактировать Jquery Mobile, чтобы его функции связи AJAX применялись толькок определенным классам.

Проблема в том, что ссылки, которые имеют свои собственные отдельные функции AJAX, переполняются JQuery Mobile.

Я пробовал "ajaxEnabled: false" на определенных классах, но это отключает все функции AJAX,где мне нужно отключить только ссылки ajax из JQuery Mobile.

Я нашел проблему и нашел только устаревшую информацию об использовании .ajaxLinksEnabled : false; , которая больше не поддерживается в Alpha 4, например:

<code>
$(document).live("mobileinit", function() {
$.mobile.ajaxLinksEnabled :false;
$.mobile.ajaxFormsEnabled :false;
});
</code>

Буду признателен за любую помощь, потраченную на попытки разобраться в этом сейчас.

ОБНОВЛЕНИЕ:

Я пытаюсь использовать protectDefault:

`<script>
$('[data-role="page"]').bind('pageinit', function () {
    $('.addtocart_form').bind('click', function (e) {
        e.preventDefault();
        //add your custom ajax call here
         $('#addcartsubmit1').click(handleAddToCart);
    });
});
</script>` 

Это останавливает соединение JQ Mobile AJAX, НО не удается вызвать functionhandleAddToCart

HTML и PHP:

     `<form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="addtocart<?php echo $i ?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>>
  <div class="quantbox"> <?php echo $ps_product_attribute->show_quantity_box($product_id,$product_id); ?><br /></div>
  <div class="bsubmitcart"> <input type="submit" id="addcartsubmit1" style="border:none;" class="<?php echo $button_cls ?>" value="Add to Cart" title="<?php echo $button_lbl ?>" /> </div>`

Ответы [ 2 ]

2 голосов
/ 22 октября 2011

Вы можете добавить data-ajax="false" к своим ссылкам, это мобильный способ jquery, чтобы отключить Ajax для ссылки.

Если вы хотите использовать чистое решение Class, возможно, попробуйте .die() на вашей ссылке перед привязкойВаша новая функция AJAX.

http://jquerymobile.com/demos/1.0rc2/docs/pages/page-links.html

0 голосов
/ 22 октября 2011

HTML:

<a href="#" class=".my-link-class">A Link</a>

JavaScript:

<script>
$('[data-role="page"]').bind('pageinit', function () {
    $(this).find('.my-link-class').bind('click', function (e) {
        e.preventDefault();
        //add your custom ajax call here
    });
});
</script>

Если у вас все еще возникают проблемы с jQuery Mobile, использующим собственный обработчик для ссылки, добавьте rel="external" к ссылкам.

Вот документация для связи в jQuery Mobile: http://jquerymobile.com/demos/1.0rc2/docs/pages/page-links.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...